ubuntu CMakeLists.txt 添加已有的分布在多个文件夹的动态库
时间: 2024-09-06 15:07:14 浏览: 63
在Ubuntu系统中,如果你想要在使用CMake构建项目时包含分布在多个文件夹中的动态库,你需要在`CMakeLists.txt`文件中指定这些库的位置。通常情况下,你可以使用`link_directories`命令来添加包含库文件的目录,然后在`target_link_libraries`命令中链接到具体的库文件。
以下是一个简化的示例来说明如何操作:
首先,假设你有一个动态库文件`libexample.so`,它位于`/home/user/lib`目录下。
你可以在`CMakeLists.txt`中这样写:
```cmake
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 添加库文件所在的目录到链接器的搜索路径
link_directories(/home/user/lib)
# 添加你的源文件
add_executable(my_target source_file1.cpp source_file2.cpp)
# 链接目标到动态库
target_link_libraries(my_target example)
```
如果你有多个库文件分布在不同的文件夹中,你需要为每一个包含库文件的目录使用一次`link_directories`命令,或者使用环境变量来设置库文件的搜索路径。例如:
```cmake
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /path/to/lib1 /path/to/lib2)
```
然后在`target_link_libraries`中列出所有的库名称:
```cmake
target_link_libraries(my_target lib1_name lib2_name)
```
确保你的库文件名与`target_link_libraries`中指定的名称相匹配,可能还需要指定库的前缀或后缀,如`lib`前缀和`.so`后缀。
阅读全文