linux cmake生成两个.so文件,其中一个.so文件调用另一个.so文件的方法
时间: 2024-11-25 20:07:15 浏览: 0
dll-so-libload-master.zip dll-so-libload-master.zip
在Linux中,CMake是一个跨平台、开源的构建系统管理工具,它可以帮助你生成配置文件,用于后续编译步骤。当你需要创建两个共享库(.so)文件,其中一个是主程序,调用另一个库中的函数,可以按照以下步骤操作:
1. **设置工程目录结构**:
- 创建一个包含main.cpp(主程序)、依赖库功能的source files(如libfunc.cpp),以及CMakeLists.txt的项目根目录。
2. **CMakeLists.txt**:
```cmake
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 添加源文件
add_library(libfunc SHARED libfunc.cpp) # 创建libfunc库
add_executable(main main.cpp) # 创建main程序
# 链接依赖库
target_link_libraries(main libfunc) # 将libfunc链接到main程序
```
3. **编译与安装**:
- 打开终端,进入项目目录并运行`cmake .`来生成构建配置。
- 然后执行`make`命令进行编译,这将生成libfunc.so和main可执行文件。
- 如果你想安装到系统路径,执行`sudo make install`。
4. **主程序调用其他库的方法**:
在`main.cpp`中,你可以通过`#include "libfunc.h"`引入库头文件,并像平常一样调用`libfunc`里的函数,例如 `func_call();`,前提是该函数已声明并在`libfunc.cpp`中实现。
阅读全文