我将项目从 Visual Studio 切换到 CMake + VS Code。我是 CMake 的初学者。
该项目由4个子目录组成:1)脚本,2)网格3)应用程序和4)64Bit。 前 3 目录各有
CMakeLists.txt
个文件。还有一个顶级 CMakeLists.txt 文件。
64Bit
目录用于分发,包含其他 DLL 和许多其他文件,以便可执行文件可以运行。
我可以在
project/build
目录中生成 DLL 和 EXE,然后使用类似于以下的命令将它们复制到 project/64Bit
目录:
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_FILE:${PROJECT_NAME}> ${CMAKE_SOURCE_DIR}/64Bit/${PROJECT_NAME}.exe)
我的问题是,当我在 VS Code 中使用“在终端窗口中启动所选目标”按钮时,它会尝试启动
project/build/app/Release/app.exe
,而我希望它启动 project/64Bit/app.exe
文件。
有没有办法可以从 CMakeLists.txt 文件或使用 CMake 扩展的 GUI 更改启动目标?我也在想这个问题会导致我以后的调试出现问题。
提前致谢!
您可以通过在 launch.json 文件中添加或编辑以下行来定义要启动的程序(您可能需要稍微编辑一下确切位置):
"program": "${workspaceFolder}/.../app.exe"
这是更新后的 launch.json 文件的示例,但我建议您编辑现有内容,而不是进行新配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "myRunner",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/64Bit/app.exe", //added/edited line
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
//...
}
],
"miDebuggerPath": "gdb",
"preLaunchTask": "build"
}
]
}
这将影响您的整个调试配置,因此如果您计划将来处理其他项目,请考虑首先创建备份。另请确保使用正确的调试配置运行该文件,在上面的示例中为
myRunner
。
希望这有帮助!