protobuf-c之arm编译

编译前工作

        需要先安装好protocol buffer库并配置好环境变量,请参考protocol buffer之linux编译
        解压源码,例如:protobuf-c.zip到目录/home/workspace/protobuf-c,通过终端进入,输入命令:

./autogen.sh

        生成configure文件。
        在父目录创建构建目录,例如:/home/workspace/protobuf-c_build,通过终端进入构建目录,输入命令:

./../protobuf-c/configure \
-host=arm-linux \
--disable-protoc \
CC=/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc \
CXX=/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ \
--prefix=/opt/protobuf-c-arm

        这里--disable-protoc(因为此处只用它生成两个文件,编译时用不到,除非在arm机器上编译protoc代码才会用到)。

编译源码

        配置成功后,输入命令:make,成功后,输入命令:make install,即可把protobuf-c库安装到目录:/opt/protobuf-c-arm

Protobuf-cpp的编译安装在不同平台有不同的方法,以下是不同情况的教程: ### Windows平台 1. **环境配置**:确保Windows系统安装了Visual Studio,并配置好相应的环境变量。 2. **预编译库**:下载并使用Google提供的适用于Windows的预编译文件。 3. **编译器选项**:根据不同的编译器版本设置相应的编译选项和链接器选项。开发者可以使用Visual Studio或MinGW等工具进行构建[^1]。 ### Linux平台 #### 编译源码方式 ```bash # 创建安装目录 mkdir -p /share/protobuf/__install # 配置生成makefile ./configure --prefix=/share/protobuf/__install CC=aarch64-rockchip-linux-gnu-gcc CXX=aarch64-rockchip-linux-gnu-g++ CXXFLAGS="-fPIC" --host=arm-linux # 编译 make -j 2 # 安装 make install ``` #### cmake编译方式 ```bash # 进入cmake目录 cd cmake # 创建build目录 mkdir build # 进入build目录 cd build # 运行cmake cmake ../ # 编译 make -j8 # 安装 make install ``` 默认是使用MTD库(静态库),如果需要使用MDD库,则需要每个项目自己改一下,直接编译即可[^2][^4]。 ### 资源文件替换及重新编译 如果涉及资源文件问题,可以通过以下步骤下载并替换相应的资源文件: 1. 下载附件zip文件。 2. 解压zip文件,得到protobuf-cpp-3.1.0.tar.gz。 3. 将解压得到的protobuf-cpp-3.1.0.tar.gz文件替换到`/opencv_contrib-3.2.0/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0`目录下的同名文件。 4. 重新进行cmake编译。注意要确保正确替换文件,避免因文件路径错误导致编译失败,使用前备份原文件,以免造成数据丢失[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值