cmake 通过封装为子项目的形式引入第三方已经生成且打包好的动态库拥有数量不确定的库文件要求跨平台动态库的存储使用标准的目录结构 lib下存储lib或a等 include bin下面存储dll或so等
要在CMake中引入第三方动态库,可以按照以下步骤进行。
- 创建一个CMakeLists.txt文件作为项目的主CMake文件。
- 在CMakeLists.txt中使用
add_subdirectory()命令来添加子项目,子项目的目录结构应该如下所示:
├── CMakeLists.txt
├── lib
│ ├── lib1.a
│ ├── lib2.so
│ └── ...
├── include
│ ├── header1.h
│ ├── header2.h
│ └── ...
└── bin
├── lib1.dll
├── lib2.so
└── ...
- 在子项目的CMakeLists.txt中,使用
add_library()命令来添加动态库。例如,对于lib1.a和lib1.dll,可以使用以下命令:
add_library(lib1 SHARED IMPORTED)
set_target_properties(lib1 PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/bin/lib1.dll)
- 在主项目的CMakeLists.txt中,使用
target_link_libraries()命令将子项目链接到主项目中。例如,对于主项目main,可以使用以下命令:
add_executable(main main.cpp)
target_link_libraries(main lib1)
- 在主项目的CMakeLists.txt中,使用
include_directories()命令将include目录添加到头文件搜索路径中。例如:
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
通过这些步骤,你可以将第三方动态库引入到CMake项目中,并且可以在不同平台上进行跨平台编译
原文地址: https://www.cveoy.top/t/topic/iRCG 著作权归作者所有。请勿转载和采集!