CMakeLists引用第三方动态库
时间: 2023-07-01 10:20:31 浏览: 84
在CMakeLists.txt中引入第三方动态库,需要使用`find_package`命令或者`find_library`命令来找到库的位置,然后使用`target_link_libraries`命令将库链接到目标中。
以`find_package`为例,假设我们要引用OpenCV库,我们可以在CMakeLists.txt中添加以下内容:
```cmake
# 查找OpenCV库
find_package(OpenCV REQUIRED)
# 添加可执行文件
add_executable(myapp main.cpp)
# 链接OpenCV库
target_link_libraries(myapp ${OpenCV_LIBS})
```
在这个例子中,`find_package(OpenCV REQUIRED)`会查找OpenCV库并将其路径存储在`OpenCV_INCLUDE_DIRS`和`OpenCV_LIBS`变量中。然后我们使用`add_executable`命令添加可执行文件,并使用`target_link_libraries`命令将OpenCV库链接到`myapp`目标中。
如果库不是通过`find_package`命令找到的,也可以使用`find_library`命令查找库的路径,然后将路径传递给`target_link_libraries`命令。例如:
```cmake
# 查找第三方库的路径
find_library(LIBRARY_NAME NAMES libname.so PATHS /path/to/library)
# 添加可执行文件
add_executable(myapp main.cpp)
# 链接第三方库
target_link_libraries(myapp ${LIBRARY_NAME})
```
在这个例子中,`find_library`命令会在`/path/to/library`目录中查找名为`libname.so`的库,并将其路径存储在`LIBRARY_NAME`变量中。然后我们使用`target_link_libraries`命令将该库链接到`myapp`目标中。
阅读全文