使用CMake-GUI创建动态库时如何设置其导出的函数或符号?
时间: 2024-12-13 20:16:03 浏览: 17
在CMake-GUI中,设置动态库(shared library)导出的函数或符号通常是通过`INTERFACE_EXPORTS`标志完成的,特别是当你使用`add_library`命令创建库项目时。以下是基本步骤:
1. **打开CMakeLists.txt**: 打开包含你要创建动态库项目的CMakeLists.txt文件。
2. **定义库项目**:
```cmake
add_library(mylib SHARED ${MYLIB_SOURCES})
```
`mylib`是你的库名,`${MYLIB_SOURCES}`是库的源文件列表。
3. **启用接口导出**:
```
set_target_properties(mylib PROPERTIES INTERFACE_LINKED_LIBRARIES some_other_lib)
set_target_properties(mylib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES include_path)
# 添加你需要暴露给客户端的接口函数或变量
target_export_definitions(mylib PUBLIC "MY_API_FUNCTION;MY_API_CONSTANT")
```
`INTERFACE_LINKED_LIBRARIES`和`INTERFACE_INCLUDE_DIRECTORIES`分别设置链接依赖和包含路径。`target_export_definitions`用于声明对外可见的符号。
4. **配置生成规则**:
在生成配置阶段,CMake会根据这些设置自动生成对应的header文件(`.h`或`.hpp`),其中包含了库导出的符号,供外部项目链接。
阅读全文