我已经预构建了第三方库(Boost),我想将其链接到我的目标。它们都存储在一个目录下,例如 ${BOOST_PATH}/lib/libboost_thread.a、${BOOST_PATH}/lib/libboost_log.a 等。
所以我想做这样的事情:target_link_libraries(${TARGET} PRIVATE "${BOOST_PATH}/libboost*.a")
我读过文件(全局...) http://cmake.3232098.n2.nabble.com/Globbing-expression-td3249607.html可能会使用,但强烈建议不要使用。我不确定它是否会起作用。为什么?
如果您无法更改 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,并使用默认目录布局。
我不认为通配符是一个好主意,因为你可能不依赖于all增强编译的库,你会无缘无故地减慢链接速度。
即使您这样做,显式列出依赖项仍然是一个好主意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)