如何在树莓派4B 64位系统中安装gcc-5.5.0编译器
解决树莓派安装GCC 5.5.0的问题
问题原因
GCC 5.5.0发布于2017年,无法兼容树莓派最新官方系统中自带的高版本glibc/libstdc++,编译时触发std::atomic相关的静态断言错误,这是旧版GCC对C++标准库新特性的支持不完善导致的。
可行解决方案
1. 使用Docker容器(最推荐)
直接拉取兼容GCC 5.5的旧版Raspberry Pi OS镜像,在容器内完成编译工作,避免破坏本机环境:
- 安装Docker:
sudo apt update && sudo apt install docker.io sudo usermod -aG docker $USER # 重启终端后权限生效 - 拉取基于Debian Stretch的旧版Raspberry Pi OS镜像(自带GCC 5.x):
docker pull resin/rpi-raspbian:stretch - 启动容器并挂载你的项目目录(替换
/path/to/your/project为实际项目路径):
进入容器后即可直接使用GCC 5.5进行编译。docker run -it -v /path/to/your/project:/project resin/rpi-raspbian:stretch
2. 手动编译时添加兼容补丁
如果一定要在本机编译,需要给GCC 5.5.0源码打补丁以适配高版本glibc:
- 从GNU官方下载GCC 5.5.0源码包并解压,进入源码目录。
- 下载适配高版本glibc的
atomic头文件补丁,替换源码中libstdc++-v3/include/std/atomic文件。 - 安装编译依赖:
sudo apt install build-essential flex bison libgmp3-dev libmpfr-dev libmpc-dev texinfo - 创建编译目录并配置(指定安装路径,禁用多架构支持以减少编译复杂度):
mkdir build && cd build ../configure --prefix=/usr/local/gcc-5.5 --disable-multilib --enable-languages=c,c++ - 编译安装(
-j$(nproc)利用所有CPU核心加速编译):make -j$(nproc) sudo make install - 临时切换到GCC 5.5版本:
export PATH=/usr/local/gcc-5.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/gcc-5.5/lib64:$LD_LIBRARY_PATH
3. 使用第三方预编译工具链
部分开源社区提供了树莓派armhf架构的旧版GCC预编译包,找到对应GCC 5.5的版本下载解压后,将其bin目录添加到系统PATH环境变量即可直接使用。
内容的提问来源于stack exchange,提问作者Huanzze
相关产品推荐
相关产品推荐

