protobuf 3.5.1交叉编译

下载交叉编译链

复制代码
wget https://snapshots.linaro.org/gnu-toolchain/11.3-2022.06-1/aarch64-linux-gnu/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu.tar.xz 
wget https://snapshots.linaro.org/gnu-toolchain/11.3-2022.06-1/aarch64-linux-gnu/sysroot-glibc-linaro-2.34-2022.06-aarch64-linux-gnu.tar.xz 

下载protobuf

复制代码
wget https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.5.1.tar.gz

编译

复制代码
tar xvf v3.5.1.tar.gz
cd protobuf-3.5.1
mkdir install
./autogen.sh

配置

  • 用选型CC/CXX指定交叉编译链

  • 用--with-sysroot指定sysroot路径

  • --prefix执行安装目录的路径

  • --host指定目标host平台型号

  • --with-protoc=protoc 可以指定用protoc协助编译,前提是要安装 protobuf-compiler

    ./configure --target=aarch64-linux --host=aarch64-linux --with-sysroot=~/sysroot-glibc-linaro-2.34-2022.06-aarch64-linux-gnu CC=~/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=~/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ --prefix=~/protobuf-3.5.1/install

    ./configure --host=aarch64-linux-gnu --with-sysroot=~/sysroot-glibc-linaro-2.34-2022.06-aarch64-linux-gnu CC=~/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=~/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ --prefix=~/protobuf-3.5.1/install

    实际也可以直接指定host平台即可 :
    ./autogen.sh
    ./configure --with-protoc=protoc --host=aarch64-linux-gnu --prefix=~/protobuf-3.5.1/install
    make
    make install

编译

复制代码
make -j8

make 报错,找不到ld-linux-aarch64.so.1

将sysroot目录下的ld-linux-aarch64.so.1拷贝到系统目录/lib/ld-linux-aarch64.so.1

添加依赖库路径: ** 实测无效,需要拷贝。**

  • export LDFLAGS=~/sysroot-glibc-linaro-2.34-2022.06-aarch64-linux-gnu/libc/lib/
  • export LDFLAGS_FOR_BUILD=~/sysroot-glibc-linaro-2.34-2022.06-aarch64-linux-gnu/libc/lib/

make报错:找不到libstdc++

protobuf-3.5.1/src/.libs/lt-protoc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

make2: *** Makefile:9508:unittest_proto_middleman 错误 127

  • 后面发现可能是配置问题,修改了配置host为aarch64-linux-gnu 即可

dockers 安装编译 - success

复制代码
apt-get install autoconf automake libtool
./autogen.sh 
// ./configure --with-protoc=protoc --host=aarch64-linux-gnu  --prefix=/app/protobuf-3.5.1/install 
./configure  --host=aarch64-linux-gnu  --prefix=/app/protobuf-3.5.1/install 
make 
make install
相关推荐
ServBay6 小时前
被催了大半年,谷歌端出 Gemini 4 Argon。跑分硬刚 GPT-6,但...
aigc·ai编程·gemini
siuser小伟的AI实验室11 小时前
主目录还有改动,怎么让 Codex 另开任务?一次 worktree 小练习
ai编程
siuser小伟的AI实验室11 小时前
Codex 说完成了,怎么验收?先核对范围、测试、用户路径和上线
ai编程
blackappleD11 小时前
MCP 是什么?按 2026-07-28 新版规范讲清架构、调用流程和配置
ai编程
zw_onemaker_ai11 小时前
让 Agent 自己收钱:72 小时搭出 x402 Agent 经济体(附八个真实踩过的坑)
人工智能·ai编程
程语AI12 小时前
RAG 混合检索实战:向量 + BM25 怎么用 RRF 融合
ai编程
程序员大狐狸12 小时前
Ultra X7 358H 笔记本电脑,本地三个大模型编程能力、速度、上下文全面对比与选型报告
llm·ai编程
IllegalCreed12 小时前
让文档不烂——Agent 时代的文档生命周期(四)
ai编程
qinglongcn12 小时前
Agent 可靠性的数学——为什么编程是第一个跑通的赛道
agent·ai编程
IllegalCreed12 小时前
Agent 不是失忆,是找不到入口——大型项目文档分层设计(一)
ai编程