【发布时间】:2016-01-14 16:24:44
【问题描述】:
我正在 Windows 上为 MSVC++ 项目配置 CMake 构建项目。它构建了可执行文件,然后将其安装到定义的目录中。在我的情况下是:
${CMAKE_SOURCE_DIR}/x64/${CMAKE_BUILD_TYPE}/
可执行文件在同一目录中有一个文件夹,其中包含它在启动时加载的文件。如果我手动启动 .exe,它会打开并运行正常。但我想通过 ctest 来完成。 我这样定义 ctest:
add_test(ENGINE_TEST1 ${CMAKE_SOURCE_DIR}/x64/${CMAKE_BUILD_TYPE}/MyApp.exe
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/x64/${CMAKE_BUILD_TYPE})
当我从 cmd 调用时:
ctest
可执行文件正在启动,但立即崩溃并出现错误:
调试错误!
程序:../../.../MyApp.exe
R6010 -abort() 有
被调用。
确实,在检查 CMake 的 Last Test.log 文件时,它显示它不是在“WORKING_DIRECTORY 而是在 CMake 构建 MyApp.exe 的目录中运行测试。我该如何更改?
【问题讨论】:
-
注意阅读documentation for
add_test:要使用 WORKING_DIRECTORY 选项,您需要将 NAME 选项用于名称和 COMMAND - 用于命令。add_test的短版不接受 WORKING_DIRECTORY 选项。 -
加长版本的 add_test 还抱怨缺少配置,从文档中不清楚如何设置。我终于通过单独设置 WORKING_DIRECTLY 解决了。
-
如果您发布您的解决方案,将会对其他人(例如我)有所帮助。