生成执行文件 如何调用动态库
时间: 2023-08-07 17:06:52 浏览: 91
要在生成的执行文件中调用动态库,需要先将动态库链接到执行文件中。在 CMake 中,可以通过以下步骤实现:
1. 添加动态库的路径和名称
在 CMakeLists.txt 文件中使用 link_directories 命令添加动态库的路径,使用 target_link_libraries 命令将动态库链接到执行文件中。
例如,假设有一个名为 libfoo.so 的动态库,其路径为 /path/to/lib,可以使用以下代码将其链接到执行文件中:
```
link_directories(/path/to/lib)
target_link_libraries(my_executable foo)
```
其中,my_executable 为要生成的执行文件的名称,foo 为要链接的动态库的名称。
2. 指定动态库的链接方式
在链接动态库时,需要指定动态库的链接方式。具体来说,可以使用 target_link_libraries 命令的 PRIVATE、PUBLIC 和 INTERFACE 选项来指定链接方式。
- PRIVATE 表示链接时只对本目标生效,不会传递给依赖本目标的其他目标。
- PUBLIC 表示链接时对本目标和依赖本目标的其他目标生效。
- INTERFACE 表示链接时只对依赖本目标的其他目标生效,不会对本目标生效。
例如,可以使用以下代码将动态库链接到执行文件,并指定链接方式为 PUBLIC:
```
target_link_libraries(my_executable PUBLIC foo)
```
这样,在生成的执行文件中,就可以使用动态库提供的接口了。如果动态库提供的头文件和库文件路径不在默认的搜索路径中,还需要使用 include_directories 命令和 link_directories 命令分别添加头文件路径和库文件路径。
阅读全文