VScode中配置可编写C/C++代码

news2024/11/25 11:38:03
VScode的下载

下载地址:https://code.visualstudio.com/

安装中文插件

重启后,生效!!!

下载和配置MinGW-w64

https://github.com/niXman/mingw-builds-binaries/releases

这里可以自行选择线程模型WIN32或posix,以及异常处理方式seh,sjlj和dwarf,这里建议使用posix与seh。 posix与*nix下的线程模型使用相同接口;seh效率更高,不过只在64位可用。

我选择的是 x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z

MSVCRT与UCRT --这是微软Windows上C标准库的两个变体。

MSVCRT (Microsoft Visual C++ Runtime)默认可用于所有Microsoft版本,但由于向后兼容性问题,过去一直存在兼容性问题,无法兼容C99,因此缺少一些功能。

UCRT (Universal )是Microsoft默认使用的较新版本。它应该工作并表现为代码是用MSVC编译的。与MSVC的兼容性更好,无论是在构建时还是在运行时。只能在默认情况下在Windows 10上发布,对于较早的版本,您必须自己提供或依赖安装了它的用户。

解压后得到 mingw64 文件夹,你可以打开bin目录看下,里面有很多后缀名是.exe 的可执行程序,这些就是开发时所需的工具,如:gcc.exe 是C语言程序的编译器,g++.exe 是C++语言的编译器,gdb.exe 是用来调试程序的 debug 工具。

配置MinGW64

验证:在windows电脑上打开cmd窗口,输入: gcc --version或者where gcc,要是能看到下面的界面,就说明MinGW-w64的编译器套件已经配置好了。

到此为止,windows版本的gcc/g++编译器已经配置好了。

vscode安装C/C++插件

重启VSCode后生效!!!

vscode编写c语言

D盘下新建一个test文件夹用vscode打开

新建C语言文件,编写C语言代码

设置C/C++编译的选项:c_cpp_properties.json

鼠标点在.c的源文件内部,按ctrl+shift+p快捷键,在弹出的界面中选择:【C/C++:编辑配置(UI)】,然后进入设置页面

配置【编译器路径】为你安装的MinDW-w64目录下的gcc

创建执行任务:tasks.json

在弹出的页面中,选择【C/C++:gcc.exe 生成活动文件】

 这时就生成了一个tasks.json文件,这个文件是专门是用来执行代码的编译任务的。

编译
  1. 鼠标点在要编译的C语言代码中

  2. 然后执行【终端】->【运行生成任务】

如果一切正常的话,我们能看到【终端】提示,就说明编译成功了。

这是我们在资源管理器中也能看到生成的.exe文件了

执行

打开VSCode自带的终端,.\可执行程序的名字,即可以执行代码

一个工程中有多个.c文件如何编译

拷贝上面生成的.vscode文件夹过来
改造tasks.json并构建验证结果

要能够编译一个文件中的多个文件,需要定制tasks.json文件的内容

编译多个源代码文件:

通过把"${file}"修改为"${workspaceFolder}\\*.c",可以构建当前工作区中的所有C文件。

通过把"${file}"修改为"${workspaceFolder}\\*.cpp",可以构建当前工作区中的所有C++文件。

修改编译输出的文件名:

通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\myProgram.exe",可以把编译输出的文件名硬编码为myProgram.exe,而不是与C文件同名。参看演示效果1。

通过把"${fileDirname}\\${fileBasenameNoExtension}.exe",修改为:"${workspaceFolder}\\${workspaceRootFolderName} .exe",可以把编译输出的文件名为:打开的工作区文件夹名字.exe。参看演示效果2。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux报错】“-bash: cd: too many arguments“

问题描述 今天使用 cd 想要调整某个文件目录时,发现以下报错 原因分析: arguments 是参数的意思,该报错提示参数过多,意味着系统识别到了多余参数 本质原因:你的命令中输入了多余的 ”空格“ ,检查一…

手写Spring第三篇番外,反射的基本使用

上一篇发出去之后,我有一个朋友说 beanDefinition.getBeanClass().newInstance() 这句代码太突兀了,就像是在甜甜的睡梦中,突然脚踩悬崖惊醒。 像我这种插朋友两刀的人必须安排了,不止安排 newInstance 还把反射基本用法也给安排了…

耳夹式耳机哪个品牌音质好?耳夹式蓝牙耳机排行榜!

当下,耳夹式蓝牙耳机愈发受到大众的青睐。不管是在上下班的途中、进行运动锻炼之时,还是休闲居家的日子里,这种耳机都能为使用者带来极为便捷的体验。不过,市面上的耳夹式蓝牙耳机品牌繁杂多样,产品品质也是良莠不齐&a…

【win10】VMware Workstation 16安装win10专业版及安装VMware Tools操作说明

参考链接 VMware虚拟机安装win10系统教程(巨细)_vmware安装win10-CSDN博客https://blog.csdn.net/gdidea/article/details/129523700 win10专业版安装说明 下载win10安装包 百度网盘 链接: https://pan.baidu.com/s/1kf4ORdXYgcqwAz2j86LSZw?pwdk4…

MySQL(八)——索引

文章目录 索引索引的数据结构索引的具体结构页的概念独立表空间文件页的结构页文件头和页文件尾页主体页目录数据页头 B树在索引中的应用索引分类按数据结构分按字段特性分按物理存储分按字段个数分 索引语法创建索引查看索引删除索引 索引优化SQL执行频率慢查询日志profile详情…

【机器学习导引】ch3-线性模型-2

优化理论:梯度下降(Gradient Descent) 梯度下降法的基本思路 梯度下降法是一种优化算法,目的是找到函数 f ( x ) f(x) f(x) 的最小值。图中提到“如果能找到一个序列 x 0 , x 1 , x 2 , … x_0, x_1, x_2, \dots x0​,x1​,x2​…

有手就会!低代码让你告别繁琐开发流程

近几年,随着低代码与无代码相关话题的火热,逻辑编排作为其重要构成部分也备受关注,集团内外不乏优秀的实践。之前在做技术调研时发现了不少业内逻辑编排相关的方案,陆续整理记录下来。今天先为大家带来低代码开发领域的 JNPF。 1.…

如何有效恢复受污染除砷树脂的功能?

在半导体制造领域,砷是一种常见的杂质元素。然而,砷的存在不仅会严重影响芯片的性能和可靠性,还会对生产环境和人体健康构成威胁。通过使用高效的除砷树脂,可以有效地去除水中的砷元素。 然而,一旦除砷树脂受到污染&am…

一个月学会Java 第10天 详讲static和面向对象——继承与Java世上最厉害的IDE——IDEA

Day10 详讲static和面向对象——继承与Java世上最厉害的IDE——IDEA 今天的篇幅会比较长,因为牵扯到不少的内容还有面向对象的内容 第一章 static 首先我们先来填一下坑,之前挖的,说后面要详细讲解static这个关键字的作用,那在这之…

二叉树的构建与遍历

在介绍二叉树的篇章中,我们用方法简单创建了一个二叉树,如下代码: public treeNode creattree(){treeNode Anew treeNode(A);treeNode Bnew treeNode(B);treeNode Cnew treeNode(C);treeNode Dnew treeNode(D);treeNode Enew treeNode(E);tr…

新大话西游图文架设教程

开始架设 1. 架设条件 新大话西游架设需要准备: linux 系统服务器,建议 CentOs 7.6或以上版本游戏源码,。 2. 安装宝塔面板 宝塔是一个服务器运维管理软件,安装命令: yum install -y wget && wget -O in…

zabbix7.0配置中文界面

Zabbix 是一个广泛使用的开源监控解决方案,支持多种语言界面。本文将详细介绍如何配置 Zabbix 以使用中文界面,从而提高用户体验和可读性。 1. 环境准备 在开始配置之前,请确保你已经安装并运行了 Zabbix 服务器、前端和数据库。如果你还没有…

成品婚恋交友相亲源码打包APP小程序H5公众号可打包小程序APP公众号H5源码交付支持二开

聊天交友系统开发专业语聊交友app开发搭建同城交友源码开发婚恋交友系统相亲app小程序H5婚恋交友小程序的定制开发与行业新机遇婚恋交友app红娘连线系统app小程序开发一站式开发系统源码:婚恋交友H5与小程序开发详解 电商运营技术服务源码系统php相亲交友平台APP婚恋…

前端优化之路:git commit 校验拦截

但是想要做到高效落地执行,就需要做些别的功课,先展示下成果图 需要了解git hooks,它是git的钩子,就像vue拥有自己的钩子一样。 官方文档:https://git-scm.com/docs/githooks 项目安装 husky,建议稳定版本…

Linux进程间通信(个人笔记)

Linux进程通信 1.进程通信介绍1.1进程间通信目的1.2进程间通信发展1.3进程间通信的具体分类 2.管道2.1匿名管道2.1.1代码实例2.1.2 fork共享管道原理2.1.3 管道的读写规则与特点2.1.4 进程池 2.2 命名管道2.2.1 命名管道的创建2.2.2匿名管道与命名管道的区别2.2.3代码实例 3.Sy…

Spring Boot洗衣店订单系统:数据驱动的决策

3系统分析 3.1可行性分析 通过对本洗衣店订单管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本洗衣店订单管理系统采用JAVA作为开发语言,S…

如何安装Llama3.1 —— 附一键安装包!

一键安装包文末领取! 下载地址 软件:Llama版本:3.1语言:简体中文大小:645 MB安装环境:Win10及以上版本(64bit) 软件简介 ‌‌LLaMA模型是Meta研发的大语言模型‌,旨在帮助研究人员推进他们…

vue-jsonp的使用和腾讯地图当前经纬度和位置详情的获取

1.下载: npm install –save vue-jsonp2.main.js中引入: //腾讯逆地址解析会用到jsonp import {VueJsonp} from vue-jsonp; Vue.use(VueJsonp);3.腾讯地图中使用 uniapp中获取*经纬度*和通过经纬度获取当前**位置详情** //获取当前经纬度 getLocation…

【AI系统】AI在不同领域的应用与行业影响

本文将探讨AI在不同技术领域和行业中的广泛应用,以及这些应用如何影响和改变我们的世界。 I. 引言 AI技术正日益渗透到各个技术领域,从计算机视觉到自然语言处理,再到音频处理,AI的应用正变得越来越广泛。这些技术的发展不仅推动…

影刀RPA实战:制作Excel工资条

1.实战目标 使用Excel制作工资条是一种常见的做法,每个公司几乎都有这样的需求,我们先介绍下使用excel手动制作工资条的方法,看看不足之处,使用影刀RPA又会给我们带来怎样的便利,让我们更倾向于选择影刀来处理。 工资…