我的问题是有点类似这种SO却不尽相同.
我HelloWorld用以下方法创建了一个程序:
add_executable( HelloWorld ${SRC} )
Run Code Online (Sandbox Code Playgroud)
当我生成项目文件(例如Visual Studio .sln文件或XCode .xcodeproj文件)时.我想点击运行按钮并在HelloWorld执行程序时传入一些命令行参数,如下所示:
./HelloWorld --gtest_filter=Test_Cases1*
Run Code Online (Sandbox Code Playgroud)
另请参阅此SO以了解如何在Visual Studio中完成此操作.
是否可以在CMakeList文件中执行此操作?如果没有,为什么?
Rol*_*ger 12
为什么这么复杂?所描述的VS和CMake的支持这个开箱这里.打开VS中的CMakeLists.txt文件,打开"调试和启动设置"(例如,通过"CMake"菜单或右键单击"解决方案资源管理器".例如:
将程序参数添加到弹出的"launch.vs.json"文件中的"args"中.
{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "tests\\hellotest",
"name": "tests\\hellotest with args",
"args": ["argument after argument"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
CMake 3.13.0看起来将以以下目标属性的形式添加对此的支持:
VS_DEBUGGER_COMMAND_ARGUMENTS -设置Visual Studio C ++目标的本地调试器命令行参数。VS_DEBUGGER_ENVIRONMENT -设置Visual Studio C ++目标的本地调试器环境。它扩展了这些命令的使用,自CMake 3.12起可用:
VS_DEBUGGER_COMMAND -设置Visual Studio C ++目标的本地调试器命令。VS_DEBUGGER_WORKING_DIRECTORY -设置Visual Studio C ++目标的本地调试器工作目录。CMake没有内置支持.原因是DebuggingVisual Studio Project属性选项卡中的设置不存储在项目文件(.vc[x]proj)中,而是存储在特定于用户和计算机的.user文件中,并且CMake不会生成这些设置.
您可以在CMake中自己编写代码(我在工作中为我们的框架执行了此操作).该文件只是XML,因此您可以根据需要预先填充它.它的结构很容易理解.例如,正在调试的程序的命令行参数存储在XML元素(嵌套)中的CommandArguments属性中.<DebugSettings><Configurations><Configuration>
| 归档时间: |
|
| 查看次数: |
8172 次 |
| 最近记录: |