gpt4 book ai didi

cmake - 如何使用 cmake 的 target_link_libraries 来链接匹配 glob 的库?

转载 作者:行者123 更新时间:2023-12-04 03:19:03 25 4
gpt4 key购买 nike

我已经预先构建了第三方库 (Boost),我想将其链接到我的目标。它们都存储在一个目录下,如 ${BOOST_PATH}/lib/libboost_thread.a、${BOOST_PATH}/lib/libboost_log.a 等。
所以我想做这样的事情:target_link_libraries(${TARGET} PRIVATE "${BOOST_PATH}/libboost*.a")我读过 FILE(GLOB...)可能会使用,但强烈建议不要使用。而且我不确定它是否会起作用。为什么?
如果您无法更改 Boost 库的目录结构,您将如何解决此问题?

最佳答案

或者您可以使用 CMake 内置功能与 Boost 链接,例如:

set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.55.0 REQUIRED thread system log)

include_directories(${Boost_INCLUDE_DIRS})

target_link_libraries(${TARGET} ${Boost_LIBRARIES})

这假定 Boost 的标准安装,具有默认的目录布局。

我不认为 globbing 是一个好主意,因为您可能不依赖所有 Boost 编译库,并且您会无缘无故地使链接变慢。

即使你这样做了,明确列出依赖项仍然是一个好主意。

关于cmake - 如何使用 cmake 的 target_link_libraries 来链接匹配 glob 的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993672/

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