Arm下Grpcクロスコンパイルプロセスレコード
まずgitソース:git cloneを取得https://github.com/grpc/grpc.git
zlibをインストールします.
protobufのコンパイル:
gRPCのコンパイル:
Arm静的ライブラリのコンパイル:
クロスコンパイルgRPC:
arm-linux-gnueabihf-ldは「-WL」パラメータを認識しないため、静的ライブラリしかコンパイルできず、コンパイルに成功したライブラリファイルは「grpc/libs/opt」にある.
cd grpc
git submodule update --init
zlibをインストールします.
export CC=arm-linux-gnueabihf-gcc
export AR=arm-linux-gnueabihf-ar
./configure
make -j4
make install prefix=/usr/arm-linux-gnueabihf
protobufのコンパイル:
cd grpc/third_party/protobuf
./autogen.sh && ./configure && make -j4
sudo make install -j4
sudo ldconfig
gRPCのコンパイル:
cd ..
make -j4 && sudo make install -j4 && sudo ldconfig
Arm静的ライブラリのコンパイル:
make clean
make plugins CC=arm-linux-gnueabihf-gcc -j4
クロスコンパイルgRPC:
export GRPC_CROSS_COMPILE=true
export GRPC_CROSS_AROPTS="cr --target=elf32-little"
make -j4 HAS_PKG_CONFIG=false \
CC=arm-linux-gnueabihf-gcc \
CXX=arm-linux-gnueabihf-g++ \
RANLIB=arm-linux-gnueabihf-ranlib \
LD=arm-linux-gnueabihf-ld \
LDXX=arm-linux-gnueabihf-g++ \
AR=arm-linux-gnueabihf-ar \
PROTOBUF_CONFIG_OPTS="--host=arm-linux-gnueabihf --with-protoc=/usr/local/bin/protoc" static
arm-linux-gnueabihf-ldは「-WL」パラメータを認識しないため、静的ライブラリしかコンパイルできず、コンパイルに成功したライブラリファイルは「grpc/libs/opt」にある.