protobuf arm linux,Protobuf C++ ARM 版编译安装

前言

Protobuf C++ ARM 版依赖于linux版本,需要使用交织编译环境举行编译,这里使用的是 arm-none-linux-gnueabi-c++

arm-none-linux-gnueabi-c++下载地址

https://download.csdn.net/download/baidu_32237719/11608951

安装交织编译环境

下载arm-none-linux-gnueabi-c++

将其移动到linux目录下

解压

tar -jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

修改环境变量

vim /etc/profile

添加解压后文件所在路径(… 代表路径,替换为自己的)

export PATH=$PATH:.../arm/bin

保留执行

source /etc/profile

验证

arm-none-linux-gnueabi-c++ -v

若是返回如下图所示,则乐成

8def002c493b6593b72897ce6c0ee514.png-v 效果

可能存在问题

arm-none-linux-gnueabi-c++ -v

提醒找不到路径之类的错误,可能是有与32位和64位造成

需要安装兼容库

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

安装protobuf linux版本

参考Protobuf C++ 版编译安装和简朴使用

安装protobuf arm版本

安装protobuf arm版本需要先安装linux版本,用到其中的天生文件

天生Makefile文件

./configure --host=arm-linux --prefix=/usr/local/protobuf_arm --with-protoc=/usr/local/protobuf/bin/protoc CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++

--host编译的版本为arm-linux

--prefix为天生文件的路径

--with-protoc为linux版protoc的路径,即之前安装的linux版本天生的目录中的工具

CC指定编译c的工具链为arm-none-linux-gnueabi-gcc

CXX指定编译c的工具链为arm-none-linux-gnueabi-g++

这一步主要目的是用来天生Makefile文件

编译安装

编译:make

测试:make check

安装 :make install

设置环境变量

添加如下环境变量

vim /etc/profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf_arm/lib

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf_arm/lib

export PATH=$PATH:/usr/local/protobuf_arm/bin

保留执行

source /etc/profile

编译Demo

arm-none-linux-gnueabi-c++ -std=c++11 Test.pb.cc test.cpp -o test `pkg-config --cflags --libs protobuf-lite`

上述链接的protobuf-lite库,有些高级用法举行了删减,主要是减小链接库烦人体积,对应的.proto文件添加option optimize_for = LITE_RUNTIME;

也可以接纳protobuf库,包罗完整用法,不需要加option optimize_for选项

使用天生的文件

在liunx已无法直接运行,需要移动到ARM端执行

在执行前需要先将依赖的库推入ARM装备

adb shell mount -o rw,remount /

adb push protobuf-lite.so.20 /usr/lib/protobuf-lite.so.20

我这里凭证错误提醒推入的是protobuf-lite.so.20

然后即可执行

./tets

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值