### fdbus编译代码(涉及protobuf编译)详解 #### 一、概述 本文主要针对fdbus项目的编译过程以及涉及到的protobuf编译步骤进行详细总结。fdbus是一款用于跨平台进程间通信(IPC)的轻量级框架,支持多种操作系统如Linux、Android等,并且集成了protobuf作为数据序列化工具。 #### 二、protobuf编译流程 **1. 下载protobuf源码** - 从官方GitHub仓库下载protobuf最新源码: ``` https://codeload.github.com/protocolbuffers/protobuf/zip/refs/heads/main ``` **2. 配置与编译** - 进入下载的protobuf-master目录: ``` $ cd protobuf-master/ ``` - 自动生成configure配置文件: ``` $ ./autogen.sh ``` - 配置编译环境(这里指定安装路径为/home/user/protobuf-main/build/install): ``` $ ./configure --prefix=/home/user/protobuf-main/build/install ``` - 编译源代码(建议使用多核编译提高效率): ``` $ make -j4 ``` - 安装编译结果: ``` $ sudo make install ``` - 刷新共享库: ``` $ sudo ldconfig ``` **3. 验证编译** - 使用`protoc -h`命令验证是否编译成功: ``` $ protoc -h ``` #### 三、fdbus编译流程 **1. 下载fdbus源码** - 由于GitHub网速较慢,推荐从gitee下载fdbus源码: ``` https://gitee.com/jeremyczhen/fdbus/repository/archive/master.zip ``` **2. 配置与编译** - 创建并进入build目录: ``` $ mkdir -p build/install $ cd build ``` - 使用CMake配置项目(这里指定安装路径为install目录): ``` $ cmake -DCMAKE_INSTALL_PREFIX=install -DBUILD_SHARED_LIBS=1 ../cmake ``` - 编译源代码: ``` $ make -j4 ``` - 安装编译结果: ``` $ make install ``` **3. 测试编译** - 启动name_server: ``` $ ./name_server ``` - 分别启动fdbxserver和fdbxclient进行测试: ``` $ ./fdbxserver $ ./fdbxclient ``` #### 四、编译proto文件 - 使用`protoc`工具编译proto文件生成对应的cc文件: ``` $ protoc ./common.base.Example.proto --cpp_out=./idl-gen ``` - 在客户端和服务端代码中包含`.pb.h`对应的头文件。 #### 五、编译fdbus示例 - 创建并进入example构建目录: ``` $ mkdir -p build-example/install $ cd build-example ``` - 使用CMake配置example项目(这里指定了系统依赖的路径): ``` $ cmake -DSYSTEM_ROOT="~/workspace/protobuf/build/install;~/workspace/fdbus/build/install" -DCMAKE_INSTALL_PREFIX=install ../cmake/pb-example ``` - 编译并安装示例程序: ``` $ PATH=~/workspace/protobuf/build/install/bin:$PATH make install ``` #### 六、运行fdbus实例 - 启动name_server: ``` $ ./name_server ``` - 分别运行testserver和testclient进行测试: ``` $ ./fdbservertestmy_test $ ./fdbclienttestmy_test ``` - 启动logserver: ``` $ ./logsvc ``` #### 七、开发自己的fdbus工程 - **注意事项**: 1. 尽量不要直接将fdbus和protobuf安装到Ubuntu环境中,建议创建一个install文件夹专门存放这些组件。 2. 确保将proto文件生成的.cc文件编译进工程执行文件中,否则会出现未定义符号的错误。 3. CMakeLists中链接protobuf库时,确保正确引用。 - 参考文档: - [FDBUS学习笔记](https://blog.csdn.net/sclzmmm/article/details/122009930) 通过以上步骤,您可以成功地完成fdbus项目的编译工作,并利用protobuf进行数据序列化处理,进而实现进程间通信的功能。希望本指南能够帮助您更好地理解和应用fdbus框架。
- 粉丝: 0
- 资源: 60
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助