gpt4 book ai didi

c++ - 如何只建立一个依赖目标?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:39:36 25 4
gpt4 key购买 nike

我想在 Windows 下使用 CMake + Visual Studio 构建一个具有很多依赖项的应用程序,例如 zlib。它们都是静态库。

我已经尝试过 ADD_SUBDIRECTORY 并且它工作得很好但是它不是只构建依赖于目标 (zlibstatic) 而是构建所有目标。

如何删除未使用的目标(及其解决方案)或只选择一个?主要是我正在搜索功能以仅定义需要的目标。

我的 CMakeLists.txt 的一部分:

ADD_SUBDIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib")
TARGET_INCLUDE_DIRECTORIES(MyProject PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib")
TARGET_LINK_LIBRARIES(MyProject zlibstatic)

最佳答案

我终于知道怎么做了。

MyProject
├───build <- here I call cmake
├───deps
│ └───zlib
│ └───CMakeLists.txt
├───inc
├───src
└───CMakeLists.txt
# Include project but remove all tartgets
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib EXCLUDE_FROM_ALL)

# Use only specific one target
ADD_DEPENDENCIES(MyProject zlibstatic)

# Include dirs from zlib source directory and from output directory becuse it generates some headers
TARGET_INCLUDE_DIRECTORIES(MyProject PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib
${CMAKE_CURRENT_BINARY_DIR}/deps/zlib
)

# Just to create beautiful structure in project tree
SET_PROPERTY(TARGET zlibstatic PROPERTY FOLDER Deps)

# Link after all
TARGET_LINK_LIBRARIES(MyProject zlibstatic)

关于c++ - 如何只建立一个依赖目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54028406/

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