Debian 10.x amd64环境下配置VScode C/C++环境
今天在Debian系统下安装配置了一套VScode C/C++的开发环境,稍微记录一下安装过程。
1. 搭建C++开发环境
打开终端,su
获取管理员权限。最好先更新一下系统软件,再安装开发环境需要的包:
sudo apt update
sudo apt install build-essential gdb
其中build-essential
是Debian提供的一整套C/C++编译环境所需的软件包,可以节省用户配置各个包的时间(其实装完这东西就已经可以在Debian系统中编译、运行C/C++代码了);gdb
则是Linux下的代码调试工具,后面我们在VScode中调试代码需要用到它。
安装过程中终端可能会提示你插入安装系统时使用的光盘映像再继续执行安装,按它的要求做就可以了。
安装完成以后就可以exit
退出管理员权限、关闭终端了。
2. 安装VScode
在VScode官网下载安装包,因为我们是在Debian amd64系统上安装,下载64bit的.deb安装包就好了。
把安装包放在一个自己知道的位置,然后我们使用命令行方式安装。
- 打开终端,
cd
到安装包路径下。 su
获得管理员权限。- 执行
sudo dpkg -i filename.deb
完成安装(filename.deb
换成自己的安装包的名称)。
3. 配置VScode
打开VScode,安装以下插件:
其中C/C++
必装,其它插件根据自己的需要安装。
然后可以新建一个.cpp文件,写一些代码来测试一下。
点击左边侧栏的“运行和调试”栏,点击“运行和调试”:
环境选择C++(GDB/LLDB)
,配置选择g++
。
然后VScode就会自动在路径下生成一个.vscode文件夹,里面包含了生成、调试的配置信息,可以根据自己的需要修改。笔者使用的是默认配置。
然后就可以按F5,开始调试。
调试结果符合我们的预期,说明我们的配置完成了。
4. 配置json文件
上面配置好的环境还不能完全满足我们的要求,尤其是在编程需要多个文件时,默认配置的VScode无法使编译器找到其他的文件,导致程序不能正常编译。所以我们需要进一步配置json文件,使编译器能够寻找到其他文件。
按下快捷键Ctrl+Shift+P
调出命令框,输入configurations
,找到C/C++编辑配置(JSON)
,点击。
在.vscode文件夹下会自动生成c_cpp_properties.json文件。下面我们就要配置.vscode文件夹下的三个.json文件。
4.1. c_cpp_properties.json
主要是修改IncludePath这一项,让程序能够找到.h头文件。我的配置如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/include/**" //.h文件所在路径,按自己的实际情况修改
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
4.2. launch.json
几乎没什么改动。如果想要生成的可执行文件为.exe格式的话,只需要修改program这一项的文件名即可。我的配置如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", //生成.exe文件
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
4.3. tasks.json
此处改动相对多一些,但也没什么难度,主要是在tasks项中加入.h文件和除程序入口以外的其他.cpp源文件的路径,供编译器编译。如果想要编译得到.exe可执行文件的话,这里的文件名同样需要修改。我的配置如下:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ 生成活动文件",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-I",
"${workspaceFolder}/include", //.h文件路径
"${workspaceFolder}/src/*.cpp", //.cpp源文件路径
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe" //生成.exe文件
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
配置完成后,编写一个多文件程序进行测试。
程序能够运行,说明编译成功,配置完成。
参考资料:
http://blog.chinaunix.net/uid-13703776-id-67828.html
https://blog.youkuaiyun.com/qq_43690043/article/details/84039206
https://blog.youkuaiyun.com/misskissc/article/details/37727771
https://blog.youkuaiyun.com/Penguuuuiiiiiiin/article/details/104191496