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
相关推荐
AI原来如此16 分钟前
Claude Opus与GPT-5激战,国内API中转站如何应对2026模型迭代潮?
大数据·人工智能·gpt·ai·大模型·ai编程
码农阿强1 小时前
Claude-Fable-5 技术详解 + 基于 startapi.top 接口实战调用(附多语言代码示例)
人工智能·gpt·ai·aigc·ai编程
雨季mo浅忆1 小时前
Cursor快速实现上传Excel功能
前端·vue3·ai编程
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月9日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
唐某人丶10 小时前
模型越来越强,我们还需要 Agent 工程吗?—— 从价值重估到 Harness 实践
前端·agent·ai编程
程序员黑豆15 小时前
AI全栈开发之Java:怎么配置Java环境变量
前端·后端·ai编程
蓝晶之心15 小时前
cursor初学实战项目——待办清单
ai编程
孟健16 小时前
我把 Claude Code 切到 Fable 5,先别急着兴奋
ai编程
右耳朵猫AI16 小时前
GitHub周趋势2026W22 | AI编程工具、知识图谱、自托管、AI代理、代码智能
人工智能·github·ai编程
程序员黑豆17 小时前
AI全栈开发之Java:什么是JDK
前端·后端·ai编程