【发布时间】:2017-01-17 07:17:19
【问题描述】:
我在我的项目中使用 CTest。我添加了简单的脚本来以POST_BUILD 运行测试。当我使用make 构建项目时,一切正常。
有趣的部分从我用dpkg-buildpackage 构建包开始。 CTest 似乎在系统目录中寻找库,而不是使用当前构建的库。有没有办法告诉CTest 或dpkg-buildpackage 在执行测试时使用当前构建的库?
我使用的 CMake 宏:
add_executable(example tests/example.cpp)
target_link_libraries(example my_lib)
enable_testing()
macro(add_unit_test target test)
list(APPEND tests ${test})
add_test(${target} ${test})
endmacro(add_unit_test)
add_unit_test(test_example example)
add_custom_target(all_tests ALL DEPENDS ${tests})
add_custom_command(
TARGET all_tests
COMMENT "Run tests"
POST_BUILD COMMAND ctest ARGS --output-on-failure
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
【问题讨论】:
-
CTest seems to look for libraries in system directories instead of using a currently built one.- 更可能的是,您的环境被配置为优先选择系统目录中的库而不是项目本地的库。您是否尝试过直接调用example可执行文件?在这种情况下使用哪些库? -
@Tsyvarev 当我直接执行它时,它使用项目本地库。也许我需要为 debian/rules 设置一些设置,但我现在不知道我到底需要什么