linux系统上编译arm版的protobuf库

21 篇文章 0 订阅
5 篇文章 0 订阅

从官网下载protobuf-2.6.0.tar.gz.

第一步是编译出x86版的库和protoc,

按顺序执行下列命令

tar -zxvf protobuf-2.6.0.tar.gz

cd protobuf-2.6.0

./configure

make

make check

sudo make install

注意make install这一步,如果没有系统root权限也是可以操作的,需要将protobuf安装到指定目录:
make install DESTDIR=/home/yourdir/

具体可以参考下面的blog:

http://blog.csdn.net/liyuan123zhouhui/article/details/72781443

在/home/yourdir/目录下会出现usr/local/bin,usr/local/include,usr/local/lib三个目录,分别代表可执行文件,头文件,库文件目录,
由于是在当前用户下安装,因此需要在当前用户环境下能够找到bin和lib 的目录,需要一下操作
在当前~目录下找到 .bashrc文件,打开这下面添加一下两行:
export LD_LIBRARY_PATH="/home/yourdir/pc_protoc/usr/local/lib"
export PATH="$PATH:$HOME/yourdir/usr/local/bin"
然后执行source .bashrc
这样上面添加的两行环境变量就会生效
这时已经编译出一个linux版的protobuf库和protoc, 这时需要开始来编arm版,因为下一步需要可以在linux上运行的protoc,所以上面的步骤不能少。


下面开始编译arm版
删除中间文件
make clean
生成makefile
./configure --host=arm-linux CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ --with-protoc=/usr/bin/protoc
关于./configure 的参数可以直接使用命令来查看:
./configure -help
进行编译生成文件
make

如果没有出错,那么arm版的库就编译出来了, 他们的位置是

protobuf-2.6.0/src/.libs/

使用readelf -h libprotobuf.so来查看文件信息,如果对应machin值是ARM,那么就是大功告成了。

最后在使用生成的protoc文件编译proto后缀文件,生成相应的头文件和源文件:

protoc --proto_path=src --cpp_out=include/caffe/proto caffe.proto
proto_path指proto文件所在目录,cpp_out指源文件的输出目录

最后的caffe.proto指需要编译的proto文件


参考文章:

https://github.com/eurotech/edc-examples/wiki/Cross-compiling-protobuf-for-ARM-architecture

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值