在此文之前,从网络搜索到的教程都多少有些问题,实际操作不可行。
最关键是我需要的两个目标是:
目标1:点击某个按钮编译当前源文件、不执行链接。-- 这个目标是用于快速编辑排错
目标2:编译连接全部源文件,单步调试。-- 连接系统库、opencv库、各个源文件的函数
我自己根据各方参考做了一个,每一步都是实际操作过。
==================================================== 正文
Ubuntu下配置VScode的C/C++开发环境
a) Vscode安装
从VScode官网下载.deb文件,执行dpkg进行安装
地址 https://code.visualstudio.com/
命令举例 sudo dpkg -i code_1.63.0-1638855526_amd64.deb
b) Vscode环境配置
1)安装c/c++插件
通过左边栏的Extension栏目安装C++插件
2)建立工程
2.1)加入已有的工程
执行菜单: 文件 -- 将文件夹加入工作区
2.2)新建工程
新建一个文件夹。
通过VScode打开此文件夹;
新建main.cpp文件并输入程序;
3)更改配置文件
以下按照目标来配置
遇到问题,解决之道是要在命令行执行通过,然后再到配置文件设置
4)============ 编译一个源代码文件
目标,点击界面右上角的三角,编译本文件。一般用于编辑、排错,这里不含连接库文件,后一步在linux里面可复杂了。
1/ 打开设置界面
快捷键: ctrl+, 或 菜单: 文件 -- 首选项 -- 配置
2/ 搜索栏粘贴下面内容 code-runner.executorMap
点击在 settings.json 中编辑
添加或编辑以下内容。其中 -c 表示仅编译,此时不需要提供 -L路径以及-l连接库
"code-runner.executorMap": {
"python": "set PYTHONIOENCODING=utf8 && python -u",
//使用 C11 或 C++14
// -如果你还有其他头文件路径,照例加 -I参数,I后面不用空格
"c": "cd $dir && mkdir -p ../obj && gcc -I/usr/local/include -I/usr/local/include/opencv4 -I./ -std=c11 -c $fileName -o ../obj/$fileNameWithoutExt.o",
"cpp": "cd $dir && mkdir -p ../obj && g++ -I/usr/local/include -I/usr/local/include/opencv4 -I./ -std=c++14 -c $fileName -o ../obj/$fileNameWithoutExt.o",
},
其余参考配置项
"cmake.configureOnOpen": true,
"C_Cpp.default.compilerPath": "/usr/local/include/**",
"C_Cpp.default.cppStandard": "c++11",
"C_Cpp.default.cStandard": "c11",
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"C_Cpp.default.mergeConfigurations": true,
"C_Cpp.default.systemIncludePath": [
"/usr/local/include/**"
],
"C_Cpp.default.includePath": [
"/usr/local/include/**",
"/usr/local/include/opencv4"
],
"code-runner.ignoreSelection": true,
"code-runner.saveFileBeforeRun": true,
"code-runner.runInTerminal": true,
3/ 效果
上述配置保存后,打开一个源文件,点击右上角的三角,或执行快捷键 ctrl+alt+n, 就会只编译当前源代码文件
5)============ 编译、连接全部源代码文件
这一步一般用来单步调试。如果在最终工程输出场景,可在命令行 cmake make 执行。
5.1) launch.json
点击左侧的Debug按钮,选择添加配置(Add configuration),然后选择C++(GDB/LLDB),将自动生成launch.json文件