一.参考教程
2.教程视频总结
(一)基于g++命令
- g++编译单文件,生成带调试信息的可执行文件、并调试
g++ -g main.cpp -o my_single_swap
- g++编译多文件,生成带调试信息的可执行文件、并调试
g++ -g main.cpp swap.cpp -o my_multi_swap
(二)基于cmake
project(MYSWAP) //工程名
add_executable(mt_cmake_swap, main.cpp swap.cpp) //生成可执行文件,第一个参数为可执行文件名,后面的参数为链接的源文件
mkdir build
cd build
cmake ..
mingw32-make.exe
- 配置json
°
\circ
° launch.json – for debug
°
\circ
° tasks.json – for build before debug
3.扩展
(一)配置文件预定义变量# 支持下面的预定义变量:
${workspaceFolder} - 当前工作目录(根目录)
${workspaceFolderBasename} - 当前文件的父目录
${file} - 当前打开的文件名(完整路径)
${relativeFile} - 当前根目录到当前打开文件的相对路径(包括文件名)
${relativeFileDirname} - 当前根目录到当前打开文件的相对路径(不包括文件名)
${fileBasename} - 当前打开的文件名(包括扩展名)
${fileBasenameNoExtension} - 当前打开的文件名(不包括扩展名)
${fileDirname} - 当前打开文件的目录
${fileExtname} - 当前打开文件的扩展名
${cwd} - 启动时task工作的目录
${lineNumber} - 当前激活文件所选行
${selectedText} - 当前激活文件中所选择的文本
${execPath} - vscode执行文件所在的目录
${defaultBuildTask} - 默认编译任务(build task)的名
(二)预定义变量示例: 假设你满足以下的条件
一个文件 /home/your-username/your-project/folder/file.ext 在你的编辑器中打开; 一个目录 /home/your-username/your-project 作为你的根目录. 下面的预定义变量则代表:
${workspaceFolder} - /home/your-username/your-project
${workspaceFolderBasename} - your-project
${file} - /home/your-username/your-project/folder/file.ext
${relativeFile} - folder/file.ext
${relativeFileDirname} - folder
${fileBasename} - file.ext
${fileBasenameNoExtension} -file
${fileDirname} - /home/your-username/your-project/folder
${fileExtname} - .ext
${lineNumber} - 光标所在行
${selectedText} - 编辑器中所选择的文本
4.操作方法
(一)g++命令 and 修改 launch.json
g++ -g main.cpp swap.cpp -o my_multi_swap
- 然后按F5进行调试,同单文件操作相同相同,报错因为默认生产的配置文件是单文件路径,进行如下操作修改
°
\circ
° launch.json中
"program": "${workspaceFolder}/my_multi_swap.exe", //该路径指向生产的exe文件,指定调试的是该文件
"cwd": "${workspaceFolder}",
// 该方法由于已经通过命令行生成了可执行文件,所以可以将launch.json中的"preLaunchTask"注释掉
(二)
project(MYSWAP)
add_executable(mt_cmake_swap, main.cpp swap.cpp)
- 然后进行CMake配置,ctrl+shift+P,输入CMake,找到CMake:Configure,指定GCC+版本号的编译器
°
\circ
° 如果报错出现不知道选择哪一个cmake,提示更新setting配置文件,则通过ctrl+shift+P输入settings.json,将下面代码添加进工作区的配置文件中,再进行CMake配置
{
"cmake.generator": "MinGW Makefiles"
}
- 之后会在工作区出现build文件夹,接着在命令行输入
cd build
cmake ..
mingw32-make.exe
"program": "${workspaceFolder}/build/my_multi_swap.exe",
"cwd": "${workspaceFolder}",
- 之后就可以用F5进行调试了,值得注意的是当前注释了"preLaunchTask",所以对文件进行修改后,文件并没有重新编译,需要重新编译,再进行调试
- 所以可以使用ctrl+shift+P,输入task,创建一个新的task.sjon,并进行如下配置
"-g",
"main.cpp",
"swap.cpp",
"-o",
"${fileDirname}\\out.exe"
- 同时使launch.json中可执行文件路径与之对应
"program": "${workspaceFolder}/out.exe",
// 实际上这里的功能等同于命令行中的 g++ -g main.cpp swap.cpp -o out(建议使用该方法,调试时不用重新编译)
|