基于docker构建的编译环境

lujw2 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás
script 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás
Dockerfile 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás
README.md 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás
docker-compose.yml 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás
docker_run.sh 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás
toolchain.cmake 09844bc870 feat: Add toolchain.cmake, already tested há 11 meses atrás

README.md

介绍

该项目是制作一个交叉编译环境,使用arm64容器的apt解决依赖,在使用宿主机上的交叉编译链进行交叉编译。 同时拥有apt的方便和宿主机交叉编译的性能,岂不美哉?

制作aarch64 文件系统

  1. 拉取arm64镜像

    docker pull  --platform linux/arm64 docker.m.daocloud.io/ubuntu:20.04
    
  2. 跑一个临时镜像,用于导出根文件系统

    docker run --name arm-temp -d ubuntu:20.04 sleep infinity
    docker export arm-temp -o ubuntu_rootfs.tar
    
  3. 将根文件系统解压至宿主机某个文件夹下

    sudo mkdir -p /opt/arm/sysroot
    sudo tar -xvf ubuntu_rootfs.tar -C /opt/arm/sysroot
    
  4. 启动一个arm64容器

    docker compose up -d
    

    修改toolchain.cmake

    将toolchain.cmake中ARM_SYSROOT_PATH指向该根文件系统,之后便能进行交叉编译:

    cmake -B build_arm -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake