cmakelists 添加动态链接库
时间: 2023-08-24 22:12:44 浏览: 77
在cmakelists.txt中添加动态链接库可以使用target_link_libraries命令。根据引用[1]中的示例,你可以在ADD_EXECUTABLE之后使用target_link_libraries命令来添加动态链接库。例如,如果你想添加名为libexample.so的动态链接库,你可以在cmakelists.txt中添加以下代码:
target_link_libraries(${PROJECT_NAME} libexample.so)
这将把libexample.so动态链接库添加到你的项目中。请确保你已经正确设置了动态链接库的路径。
相关问题
CMakeLists 引用动态库头文件
在CMakeLists.txt中引用动态库的头文件,需要使用`target_include_directories`命令将头文件路径添加到目标中。
以引用名为`libfoo.so`的动态库的头文件为例,假设头文件的路径为`/path/to/libfoo/include`,我们可以在CMakeLists.txt中添加以下内容:
```cmake
# 添加可执行文件
add_executable(myapp main.cpp)
# 添加头文件路径
target_include_directories(myapp PRIVATE /path/to/libfoo/include)
# 链接动态库
target_link_libraries(myapp foo)
```
在这个例子中,`target_include_directories`命令会将`/path/to/libfoo/include`添加到`myapp`目标的头文件路径中。然后我们使用`target_link_libraries`命令将`foo`动态库链接到`myapp`目标中。
需要注意的是,`target_include_directories`命令有两种作用域,即`PRIVATE`和`PUBLIC`。`PRIVATE`表示只对当前目标有效,`PUBLIC`表示对当前目标及其依赖项都有效。在这个例子中,我们使用了`PRIVATE`作用域,因为头文件路径只需要对`myapp`目标有效。
CMakeLists 引用.so动态库
在CMakeLists.txt中引入.so动态库,可以使用`find_library`命令查找动态库的路径,然后使用`target_link_libraries`命令将库链接到目标中。
以引用名为`libfoo.so`的动态库为例,假设动态库的路径为`/path/to/libfoo.so`,我们可以在CMakeLists.txt中添加以下内容:
```cmake
# 查找动态库的路径
find_library(LIBFOO_PATH libfoo.so /path/to)
# 添加可执行文件
add_executable(myapp main.cpp)
# 链接动态库
target_link_libraries(myapp ${LIBFOO_PATH})
```
在这个例子中,`find_library`命令会在`/path/to`目录中查找名为`libfoo.so`的动态库,并将其路径存储在`LIBFOO_PATH`变量中。然后我们使用`target_link_libraries`命令将该动态库链接到`myapp`目标中。
需要注意的是,Linux系统下动态库的命名规则是`lib<name>.so`,因此在使用`find_library`命令查找动态库时,需要将`lib`前缀和`.so`后缀省略。如果动态库的名字不符合这个规则,需要在`find_library`命令中指定完整的动态库名。