问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 16 人浏览分享

开启左侧

RISC-V 交叉编译踩坑:用 Docker 解决 Buildroot 工具链 GLIBC 2.38 依赖问题

[复制链接]
16 0
经验分享
经验分享: 04-预留 » X
RISC-V 交叉编译踩坑:用 Docker 解决 Buildroot 工具链 GLIBC 2.38 依赖问题
问题背景
Buildroot SDK 2.2 的交叉编译工具链(riscv64-unknown-linux-gnu-g++)是在 GLIBC 2.38 环境下编译的,而主机 Ubuntu 22.04 只自带 GLIBC 2.35。
这意味着,即使 CMake 工具链文件写得再正确,只要在主机上直接运行编译器,就会因为 GLIBC 版本不匹配而失败
这里以工程yolo-qt5-cam为例。

一、问题分析
1.1 为什么升级主机 GLIBC 不行?
GLIBC 是系统的基石库,几乎所有程序都依赖它。在 Ubuntu 22.04 上手动升级 GLIBC 到 2.38,大概率会导致整个系统崩溃——这是 Linux 世界里少有的"绝对不能碰"的操作之一。
1.2 工具链的 GLIBC 依赖从哪来?
Buildroot SDK 的交叉编译器本身是一个 x86_64 的可执行文件,但它在编译时被链接到了更高版本的 GLIBC
1.3 为什么是 Docker?

Docker 容器运行 Ubuntu 24.04(自带 GLIBC 2.39),完美满足 GLIBC 2.38 的要求,同时与主机完全隔离。
二、Docker 方案完整实现
2.1 安装 Docker(如果还没有)
# Ubuntu 22.04 安装 Docker
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# 重新登录使 docker 组生效
2.2 编写 Dockerfile
FROM ubuntu:24.04

# 避免交互式安装提示
ENV DEBIAN_FRONTEND=noninteractive

# 安装编译必需工具
RUN apt-get update && apt-get install -y \
    cmake \
    make \
    g++ \
    pkg-config \
    file \
    && rm -rf /var/lib/apt/lists/*

# 复制项目源码到容器
COPY . /yolo-qt5-cam

WORKDIR /yolo-qt5-cam/build-rv

CMD ["bash", "-c", "rm -rf * && cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-k1.cmake && make -j$(nproc)"]
2.3 构建 Docker 镜像
cd ~/yolo-qt5-cam
docker build -t yolo-qt5-cam .
首次构建需要下载 ubuntu:24.04 基础镜像(约 78MB),加上安装工具,总共大约 2-3 分钟。后续构建有 Docker 缓存,几秒钟就能完成。
2.4 挂载卷
容器内的文件系统是临时的,容器销毁后所有编译产物都会消失。所以我们用 卷挂载 的方式,让容器直接读写主机上的文件
docker run --rm \
  -v /home/$USER/buildroot-sdk-2.2:/home/uisrc/buildroot-sdk-2.2 \
  -v /home/$USER/yolo-qt5-cam:/yolo-qt5-cam \
  yolo-qt5-cam:latest \
  bash -c "
    export PATH=/home/uisrc/buildroot-sdk-2.2/output/mlk_k1_v2_defconfig/host/bin:\$PATH && \
    cd /yolo-qt5-cam/build-rv && \
    cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-k1.cmake -DCMAKE_BUILD_TYPE=Release 2>&1 && \
    make -j\$(nproc) 2>&1
  "
2.5 验证编译产物
编译完成后,产物直接出现在主机目录中(因为是卷挂载):
file ~/yolo-qt5-cam/build-rv/YoloQt5Cam
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

10

粉丝

168

主题
精彩推荐
热门资讯
    网友晒图
      图文推荐
        
        • 微信公众平台

        • 扫描访问手机版