本文翻译自 https://assil.me/2017/10/21/cross-compile-protobuf-arm-zynq.html,略有修改。

准备

$ sudo apt install autoconf automake libtool curl make g++ unzip git

安装 arm 工具链

$ sudo apt install gcc-arm-linux-gnueabihf

下载

下载 protobuf 和对应版本的 protoc

$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-cpp-3.6.1.tar.gz
$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip

解压

$ tar xf protobuf-cpp-3.6.1.tar.gz
$ mkdir protoc-3.6.1
$ unzip protoc-3.6.1-linux-x86_64.zip -d protoc-3.6.1

编译

$ cd protobuf-3.6.1
$ ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-protoc=../protoc-3.6.1/bin/protoc
$ make

生成的库位于 src/.libs,包括静态库和动态库。

参考

https://github.com/protocolbuffers/protobuf/blob/master/src/README.md

Logo

更多推荐