gpt4 book ai didi

c++ - 为子项目应用 CMake 设置

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:17 24 4
gpt4 key购买 nike

我有一个这样的项目目录设置:

3rdparty 
|--glfw
test
|--3rdparty
|--googletest
|--CMakeLists.txt (Test project CMakeLists)
CMakeLists.txt (Main project CMakeLists)

在主工程中设置外部依赖:

add_subdirectory(3rdparty/glfw)
target_link_libraries(Main glfw)

为测试项目应用所有依赖项的最佳方法是什么?我是否应该在子 CMakeLists.txt 中重做所有依赖代码?提前致谢

最佳答案

通常,当您有一个测试项目时,您必须将测试可执行文件链接到其余代码。通过使用 CMake 执行此操作,您应该自动获得传递依赖项。但是,要做到这一点,您需要基于 CMake 目标的 API。

add_executable(Main ... your cpp files ...)
add_library(YourLib ... your cpp files ...)

add_subdirectory(3rdparty/glfw) # or find_package(glfw)

# link YourLibs to glfw
target_link_libraries(YourLibs PUBLIC glfw)

# link Main to YourLibs and its public dependencies
target_link_libraries(Main PUBLIC YourLibs)

然后在您的测试 cmake 文件中,链接到与您的 exe 相同的目标以获得您自己的功能的访问权限,包括目录和库:

add_executable(Test cppfile.cpp)
add_test(Test)
target_link_libraries(Test PRIVATE YourLibs gtest)

关于c++ - 为子项目应用 CMake 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55222533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com