cmake引入第三方库
- 第三方库包含.lib文件和.h/.hpp文件动态库还包含.dll文件
小例程
3rdparty
├─bin
│ test.dll
├─include
│ test.hpp
└─lib
├─Debug
│ test.lib
└─Release
test.lib
#以下为配置该第三方库
add_library(test SHARED IMPORTED)
set_target_properties(
test
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES # 接口include目录
${根目录}/include
IMPORTED_IMPLIB_Debug
${根目录}/lib/Debug
IMPORTED_IMPLIB_Release
${根目录}/lib/Release
)
#以下为使用该第三方库
target_link_libraries(
main
PRIVATE
test
)
- 第三方库除了包含上述文件外还包含.cmake文件
小例程
3rdparty
├─bin
│ test.dll
├─cmake
│ test.cmake
├─include
│ test.hpp
└─lib
├─Debug
│ test.lib
└─Release
test.lib
#以下为配置该第三方库
find_package(test REQUIRED HINTS "${根目录}/cmake")
#以下为使用该第三方库
target_link_libraries(
main
PRIVATE
test
)
关于find_package()中参数的讨论
HINTS和PATHS都能指定搜索路径有啥区别?以下是从cmake文档中复制过来的,
Search paths specified by the PATHS
option. These are typically hard-coded guesses.
经过检索初步确定为PATHS指定固定路径不能在执行期间设置
硬编码 - 维基百科,自由的百科全书 (wikipedia.org)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)