vscode+mingw搭建C/C++环境系列
文章目录
一、简述
前面文章中已经简单说明了,如何使用vscode编译调试单个源文件程序,本文继续上一个章节说明下如何使用vscode编译调试多个源文件程序
二、vscode编译调试多个源文件程序
1.创建多个源文件程序
在原有代码的基础上(main.cpp),新建文件夹add,然后在该文件夹下面添加文件add.h和add.cpp,将原本add函数的声明和实现分别放到add.h和add.cpp中,文件结构如下:
add.h
int add(const int &var1,const int& var2);
add.cpp
#include "add.h"
int add(const int &var1,const int& var2)
{
return var1+var2;
}
main.cpp
#include <iostream>
#include <sstream>
#include "add/add.h"
int main(int argc,char** argv)
{
std::cout<<"VsCode Test"<<std::endl;
int var1=10,var2=20;
std::ostringstream ss;
ss<<"var1+var2="<<add(var1,var2)<<"\n";
std::cout<<ss.str().c_str();
return 0;
}
2.调试运行多文件程序
Run Code
将鼠标的焦点放到要编译运行的源代码文件上,在窗口的右上角区域有个右三角的图标,下拉选择Run Code,直接编译运行程序。在多文件下会提示如下报错说明。
错误说明:vscode使用g++编译的时候默认只编译了单个文件,所以没有将add.cpp进行编译,导致程序在链接的过程中找不到add(const int& ,const int&)函数的符号。
a.settings.json文件说明
settings.json是VS Code众多配置文件中的一个,可以对VS Code进行页面风格、代码格式、字体颜色大小等 的编辑设置,例如:前面文章中提到到自动保存、字体、文件编码等。
vscode设置界面分用户区和工作区
用户区:会应用于该用户打开的所有的工程,配置一些基础、常用、共用的配置。
工作区:仅适用于vscdoe打开的当前目录。
b.修改settings.json文件编译参数
本文将编译参数的设置都放在了工作区,
文件–>首选项–>设置->搜索code run–>选择Code-runner:Executor Map设置编译参数,点击编辑,会生成settings.json。
Code-runner:Executor Map中的下面展示了C和C++的编译参数,由多个组合命令完成了整个编译运行的过程,修改cpp的编译选项,增加add/add.cpp文件的编译。如下图所示:
以cpp的编译选项进行简单说明:
- cd $dir :先进入到工作区目录
- g++ $fileName -Iadd add/add.cpp -o $fileNameWithoutExt :g++的编译选项,-I指定头文件目录add,增加编译add/add.cpp文件,-o 输出目标文件
- $dir $fileNameWithoutExt:运行当前应用程序
{
"code-runner.executorMap": {
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -Iadd add/add.cpp -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
}
}
再次点击Run Code,代码编译运行成功,
3.调试C/C++文件
直接点击调试C/C++文件的程序,vscode会直接报错,
在多个源文件程序中,如果需要调试,就需要修改tasks.json文件。
a.修改tasks.json文件
前面在运行多个源文件程序的时候,我们修改了settings.json文件,tasks.json文件是vscode调试时候依赖的文件,同样也需要修改编译选项如下: 在编译参数args里面添加编译文件的选项,如下所示:
修改完成后在点击调试C/C++文件,即可完成调试。