vscode调试C++程序时,有时需要给程序传递命令行参数。
通常做法是配置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;
}
打开Workspace
的settings.json
添加命令行参数如下:
{
"cmake.debugConfig": {
"args": [
"arg1",
"arg2"
]
}
}
运行程序,结果如下,符合预期
3
arg1