我的问题有点像这个SO,但不一样。
我用下面的代码创建了一个HelloWorld
程序:
add_executable( HelloWorld ${SRC} )
字符串
当我生成一个项目文件(例如VisualStudio.sln文件,或XCode.xcodeproj文件)时。我想点击run按钮,并在HelloWorld
执行程序时向它传递一些命令行参数,如下所示:
./HelloWorld --gtest_filter=Test_Cases1*
型
请参阅SO,了解如何在Visual Studio中完成此操作。
是否可以在CMakeList文件中执行此操作?如果不是,原因何在?
6条答案
按热度按时间xlpyo6sf1#
为什么这么复杂?VS和CMake支持这种开箱即用的功能,如这里所述。在VS中打开CMakeLists.txt文件,并打开“调试和启动设置”(例如通过“CMake”菜单或通过在“Solution Explorer”中右击。例如:
的数据
将程序参数添加到弹出的“launch.vs.json”文件中的“args”。
字符串
piok6c0g2#
CMake 3.13.0看起来像它将add support以以下目标属性的形式:
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++目标设置本地调试器工作目录。sq1bmfud3#
这个答案是在CMake 3.13发布之前写的,所以现在已经过时了。还有一个answer showing solution with CMake 3.13+。
CMake 3.12及以下版本对此没有内置支持。原因是Visual Studio项目属性的
Debugging
选项卡中的设置不存储在项目文件(.vc[x]proj
)中,而是存储在特定于用户和计算机的.user
文件中,并且CMake不会生成这些设置。你可以自己在CMake中编写代码(我在工作中为我们的框架做了这件事)。该文件只是XML,因此您可以根据需要预先填充它。它的结构很容易理解。例如,正在调试的程序的命令行参数存储在
<DebugSettings>
XML元素(嵌套在<Configurations><Configuration>
中)内的CommandArguments
属性中。vjrehmav4#
如果您希望将
E:\dev\IfcPL\examples\Trassierung.ifc
作为参数添加到Visual Studio 2017中的调试构建项目:字符串
型
ubbxdtey5#
Visual Studio 2022
的解决方案是单击Debug
菜单栏项,然后选择Debug and Launch Settings for <Project Name>
:的数据
在下面打开的
launch.vs.json
中,您可以在底部添加参数:的
现在,当您使用该概要文件开始调试时,您需要的命令行参数将被传递:
的
bn31dyow6#
不是CMake的把戏。您可以这样做以设置调试版本的默认
args
:字符串