vscode调试C++程序时,有时需要给程序传递命令行参数。这么说,如果是用F5去运行的话那么则是另外一套配置配置方法,但现在最近已经习惯了CMake一套工具链,同时懒得跳到命令行里面去打make或者运行脚本。这种时候,通常做法是配置launch.json
文件中要调试程序的args
字段。但是设置tasks.json
和launch.json
的方式不如使用CMake Tools插件调试运行程序方便。CMake Tools插件调试运行程序可以在多个cmake的target中切换,省去了写那些配置的繁琐步骤。
1. 设置方法: 设置 cmake.debugConfig 的 args字段
注意要是去设置Workspace
的settings.json
,因为每个项目需要的设置的命令行参数不一样。
如果设置User
的settings.json
会对其他项目产生影响。
{
"cmake.debugConfig": {
"args": ["arg1", "arg2"]
}
}
这里只配置了cmake.debugConfig
中的args
字段,其他字段省去了,因为我们当前只需要设置命令行参数。
虽然名字叫debugConfig
,这里传递的命令行参数在Release
和Debug
模式下都是有效的。
2. 例子
假设main.cpp
需要用到命令行参数
#include <iostream>
int main(int argc, char **argv)
{
std::cout << argc << std::endl;
std::cout << argv[1] << std::endl;
return 0;
}
然后直接创建一个.vscode文件夹,创建一个settings.json文件,把上面1中提到的内容加进去就好了。
这样用CMake一套就能直接带参数调试或者运行了,同理,想要配置clangd的话也是直接去settings设置就好。