【问题标题】:How to change Cmake executable running directory [duplicate]如何更改Cmake可执行文件的运行目录[重复]
【发布时间】:2019-04-24 02:14:55
【问题描述】:

我正在为 Cmake 项目编写测试。该项目包含一个库子项目和一个测试子项目,用于测试库。

测试需要将一些输出图像与一些存储值进行比较,因此该项目包含一个 [ImageReferences] 和 [ImageOutputs] 目录。

项目结构如下:

-[root]
---CMakeList.txt
---[library]
------CMakeList.txt
---[test]
------[ImageReferences]
------[ImageOutputs]
------CMakeList.txt
---[build]
------[library]
------[test]

如果我在 [build] 文件夹中运行 cmake,则测试可执行文件将在 [build/test] 文件夹中结束。这是好的和有意的,但是当我运行 ctest 时,我无法引用 [ImageReferences] 和 [ImageOutputs] 的位置。

目前,在代码中,我正在做:

ref_path = "../../test/ImageReferences"
out_path = "../../test/ImageOutputs"

这显然不理想,而且容易崩溃。

我想实现的解决方案是更改运行可执行文件的目录。如果我可以将 [test] 指定为运行目录,那么我可以直接引用 [ImageReferences] 和 [ImageOutputs] 文件夹,而将可执行文件留在 [build/test] 文件夹中。

我尝试在 cmake 中或作为 ctest 的参数来执行此操作,但我做不到。我想知道是否有办法实现这一点。

如果答案是否定的,我想了解哪些替代方案我必须不再依赖不稳定的本地路径。

【问题讨论】:

    标签: cmake ctest


    【解决方案1】:

    我设法让它通过 ctest 工作:

    add_test(
        NAME ${TESTNAME}
        COMMAND ${TESTNAME}
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
    

    但是,当将 CMake 与 Visual Studio 2017 一起使用并从测试资源管理器面板运行测试时,这不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 2012-11-13
      • 1970-01-01
      • 2019-12-20
      • 2017-12-06
      • 2015-12-14
      • 1970-01-01
      相关资源
      最近更新 更多