VScode上配置C/C++_vscode配置c++
近期在VScode上配置C/C++的环境,看了很多篇文章才成功,现记录一下我的步骤。
如果比较赶时间,建议可以直接看总结
目录
下载mingw
下载VScode中C/C++的插件
配置编译环境
1.创建一个新的文件夹
C代码
C++代码
3.生成 tasks.json 文件
C代码
C++代码
比较
4.生成 launch.json 文件
C文件
C++文件
比较
5.配置 C/C++ IntelliSense
6.多文件编译
C文件
编辑
C++文件
7.子文件夹内的多文件编译
Step1: 修改tasks.json 文件
Step2: 创建子文件夹
8.C与C++文件共同编译
总结
下载mingw
下载VScode中C/C++的插件
我下载了下图的插件
配置编译环境
1.创建一个新的文件夹
(这里我创建了一个名为“test”的文件夹)
2.添加代码文件
注意:
若是C代码,文件名的后缀为.c
若是C++代码,文件名的后缀为.cpp
C代码
#includeint main(){ printf(\"Hello\"); return 0;}
C++代码
#include using namespace std;int main(){ cout << \"hello world\" << endl; return 0;}
3.生成 tasks.json 文件
点击右上角的三角形
或者 点击三角形下拉菜单中的Debug C/C++ File
出现了下面这个界面
若编译C文件,则选择gcc
若编译C++文件,则选择g++
然后就会自动生成一个 .vscode 的文件夹,在里面自动生成了 tasks.json 文件
C代码
如果是C代码,则如下所示
C++代码
如果是C++代码,则如下所示
比较
不难发现,在 \"label\" 与\"command\"两个选项中,二者是不同的
C代码,则是gcc
C++代码,则是g++
到了这里,代码已经可以运行了,按右上角的三角形即可运行。
但是想要进行调试,就要继续下面的操作。
4.生成 launch.json 文件
点击右上角的齿轮图标(在三角形的右边)
若是C文件,则选择gcc
若是C++文件,则选择g++
点击后,就会自动生成 launch.json 文件
C文件
C++文件
比较
不难发现,在 \"name\"这个选项中,二者是不同的
C代码,则是gcc
C++代码,则是g++
这与前面 tasks.json 是同理的
到了这里,你就可以打断点调试了
5.配置 C/C++ IntelliSense
请参见这篇文章
VScode配置C/C++环境详细_vscode配置c++开发环境-CSDN博客
个人发现,使用默认的配置也可以
6.多文件编译
在 tasks.json 文件中,“${file}”表示编译单个文件
要想编译多个文件
如果是C文件,则改成 \"*.c\"
如果是C++文件,则改成 \"*.cpp\"
其中,* 表示全部的意思
C文件
编辑之后记得用 Ctrl + S 保存
下面我们写几个文件测试一下
文件1:add.h
int add(int x,int y);
文件2:add.c
#include\"add.h\"int add(int x,int y){ return x+y;}
修改 hello.c文件里面的内容为:
#include#include\"add.h\"int main(){ printf(\"Hello\\n\"); int a=10; int b=510; int c=add(a,b); printf(\"%d\\n\",c); return 0;}
然后就可以运行或者调试啦!
C++文件
编辑之后记得用 Ctrl + S 保存
下面我们写几个文件测试一下
文件1:add.hpp
int add(int x,int y);
文件2:add.cpp
int add(int x,int y){ return x+y;}
修改hello.cpp的内容为:
#include #include\"add.hpp\"using namespace std;int main(){ cout << \"hello world\" << endl; int a=10; int b=510; int c=add(a,b); cout << c <<endl; return 0;}
然后就可以运行或者调试啦!
7.子文件夹内的多文件编译
细心的读者可能留意到,无论是C文件还是C++文件,上面我们都只是修改了hello.c 或者 hello.cpp 文件中的内容,而没有另外创建一个类似于 test_add.c 或 test_add.cpp 的文件来测试
为什么呢???
因为如果创建了 test_add.c 或 test_add.cpp 文件,他们里面会包含main函数。
在进行编译时,会把 test_add.c 或 test_add.cpp 文件里的main函数与 hello.c 或者 hello.cpp 文件里的main函数都编译了,导致出现2个main函数的错误。
(我们知道,C/C++中是只允许存在一个main函数的)
如何解决这个问题呢?
一种方法是再创建一个文件夹,重复上述的步骤1、2、3、4、5、6
但是这样就太麻烦了,下面介绍另一种简单的方法
可以实现在当前文件夹下的 子文件夹内进行多文件编译
Step1: 修改tasks.json 文件
对于C文件:将 \"*.c\" 修改为 \"${fileDirname}\\\\*.c\"
对于C++文件:将 \"*.cpp\" 修改为 \"${fileDirname}\\\\*.cpp\"
Step2: 创建子文件夹
以C++为例:
我创建了子文件夹 sub1 与 sub2,
分别放入相应的文件:
sub1文件夹下的文件:
add.hpp
add.cpp
test_add.cpp
sub2文件夹下的文件:
hello.cpp
进入对应的文件夹里面运行,就会发现两个文件夹中的main函数互不影响,可以分别执行
在sub1文件夹下运行,只输出了520
在sub2文件夹下运行,只输出了hello world
对于C文件也是同理的。
8.C与C++文件共同编译
如果想在子文件夹下进行多个C与C++文件共同编译,则如下所示,只要在 tasks.json中把编译C文件的语句与编译C++文件语句都加上即可
\"${fileDirname}\\\\*.cpp\",\"${fileDirname}\\\\*.c\",
如果想在本文件夹下(非子文件夹内)进行多个C与C++文件共同编译,则如下所示,只要在 tasks.json中把编译C文件的语句与编译C++文件语句都加上即可
\"*.cpp\",\"*.c\",
总结
VScode上配置C/C++的流程:
- 下载mingw
- 下载VScode中C/C++的插件
- 编写C/C++代码
- 点击右上角的三角形图标,生成tasks.json 文件
- 点击右上角的齿轮图标,生成launch.json 文件
- 根据个人需要,配置 C/C++ IntelliSense
- 根据需要,选择编译方式:
- 单文件编译,则不用改动
- 本文件夹下的多文件编译,则在tasks.json 文件中加上
\"*.cpp\",//编译本文夹下的C++文件\"*.c\",//编译本文夹下的C文件
- 子文件夹下的多文件编译,则在tasks.json 文件中加上
\"${fileDirname}\\\\*.cpp\",//编译子文件夹下的C++文件\"${fileDirname}\\\\*.c\",//编译子文件夹下的C文件