gpt4 book ai didi

c - 如何将 add_dependency 与 CMake 一起用于非子目录?

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

我有以下结构:

${root}
project_a
main.c
CMakeLists.txt
project_b
lib.c
target.cmake

CMakeList.txt

include(${ROOT}/project_b/target.cmake)

add_executable(${PROJECT_NAME} main.c)
add_dependencies (${PROJECT_NAME} app_cmake_b)
target_link_libraries (${PROJECT_NAME} app_cmake_b)

目标.cmake

add_library(project_b STATIC ${ROOT}/lib.c)

使用 include 是导入其他 cmake 项目的唯一方法吗?

我不喜欢在包含的 target.cmake 中需要绝对路径使用 CMake 解决我的用例的最佳实践是什么?

最佳答案

您应该使用 add_subdirectory 函数。

https://cmake.org/cmake/help/v3.0/command/add_subdirectory.html

您可以使用相对路径添加不是子目录的目录。

例如,如果要添加兄弟目录,

 add_subdirectory(../dir)

只需确保您放置在该函数中的目录有一个 CMakeLists.txt,它就会将该项目导入当前项目。

关于c - 如何将 add_dependency 与 CMake 一起用于非子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538006/

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