vscode 初次使用笔记,相关配置记录
参考视频:https://www.bilibili.com/video/BV13K411M78v?from=search&seid=16159601827063365839
-
vscode 只运行不调试程序
单文件运行:
g++ .\main.cpp
.\a.exe
多文件运行
g++ -g main.cpp rational.cpp -o a.exe
注:a是自动生成的可执行文件名。 -
调试程序
需要launch.json和task.json
选中图标——>右键——>creat… -
配置launch.json与task.json
通过cmake(CMakeLists.txt)去构建工程,而不是使用g++去构建工程
launch.json:配置调试信息,用来调试编译好的文件
task.json:包含调试前的操作指令,用来做调试前的编译工作 -
自动创建build文件
CMake生成Makefile
project(MYSWAP)
add_executable(my_cmake_sawp,mian.cpp,swap.cpp)
main.cpp界面下使用ctrl+shift+p ->CMake:configure ->gcc.8.10
cd .\build
cmake..
mingw32-make.exe (会出现build,linking...)
-
手动创建build文件
cd…
mkdir build
cd build
cmake…
注:首次使用需要:CMake -G “MinGW Makefiles”…
mingw32-make.exe -
进入调试
进入launch.json ,匹配program
“program:” ${workspaceFolder}/build/my_cmake_swap.exe
注:执行文件的名称需一致 -
配置json
修改main.cpp,若prelaunch是注释的,则修改cpp无效,程序依然是修改前的执行效果。
可以使用mingw32 - make.exe 先进行编译,再进行调试,则程序修改就有效了。 -
把prelaunch反注释掉,按F5会报错,没法调试
在launch.json界面 ctrl+shift+P ->task->configure task ->creat task.json (重新创建了task.json,相当于 g++ -g main.cpp swap.cpp -o out.exe)
当为多文件时:
->修改task.json ->将task.json中的“${filename}”改为main.cpp,swap.cpp->此时编译能通过,但修改的程序再编译,修改无效->需将“${fileDirname}”中的文件地址在launch.json和task.json设置为一致。
task.json中的label名字应与launch.json中的prelaunchtask名字一致。
在程序修改后,若不匹配launch.json和task.json,直接用命令Mingw32-make.exe同样回事修改的程序调试无效,执行的依然是修改前的程序
9.无法断点问题
若prelaunchtask可以执行,但是无法命中断点的情况下保证没有其他地方的错误。可以在cmakeLists.txt中使用指令:
project()
Set(CMAKE_BUILD_TYPE debug)
10.针对Cmake工程执行编译、调试
task.json中的第三个label的名字要与launch.json中prelaunch的名字一一对应
CmakeLists.txt的执行文件名要与launch.json的program执行文件名及路径一致。