linux下vscode调试C++
1.在CMakelists中设置编译为Debug模式,增加需要生成的可执行程序
set(CMAKE_BUILD_TYPE DEBUG)
add_executable(hello main.cpp)
在代码目录使用mkdir build生成build文件夹。
2.点击Run->Start Debugging,如图:
3.在vscode中间上面弹出的选项中选择C++(GDB/LLDB),如图:
4.接下来选择g++ - Build and Debug active file,如图:
在.vscode文件夹下会生成两个文件,分别为launch.json和tasks.json。
注意:不同版本的VScode生成launch.json和tasks.json文件的方式可能有所不同,可以自己上网查找。
5.在launch.json文件中将"program"改成生成的可执行文件的路径,并且将"preLaunchTask"改成”build",这个名称可以自己随意改,需要和tasks.json文件中的"label"一致。如图:
6.将tasks.json文件中"type"值改为"shell",在tasks.json文件中将"label"改成launch.json文件中"preLaunchTask"的值一致,这里为”build",再将"command":改成"cd ${workspaceFolder}/build;cmake ..;make -j6",将"args"中括号里面的参数都删掉。如图:
打上断点,按F5就可以调试了。
7.如果使用第三方库,并且库的头文件不在"/usr/include"和"/usr/local/include",你在CMakelists中添加了第三方库路径(添加方法自己查找),可以编译和运行,但是调试会报错,需要添加第三方库的路径。点击View->Command Palette...,如图:
8.在vscode中间上面弹出的选项输入C/C++:Edit,这个时候,在下面选择C/C++:Edit Configurations(JSON),如图:
在.vscode文件夹下会生成一个文件,为c_cpp_properties.json。
9.打开c_cpp_properties.json文件,在includePath参数中加入第三方头文件的路径,我这里拿opencv4.1举例,加入"/usr/local/include/opencv4",注意:第一行"${workspaceFolder}/**"后面要加个逗号,如图:
这时你发现可以添加头文件#include <opencv2/core/core.hpp>,如果不执行第9步操作,调试会报错,你必须要写成#include <opencv4/opencv2/core/core.hpp>才可以调试,因为opencv4这个文件夹是在/usr/local/include路径下。