基于docker构建的编译环境

lujw2 80a4bbf15c feat: update dockerfile and docker-compose file for ub22 and ub20 2 luni în urmă
script 09844bc870 feat: Add toolchain.cmake, already tested 11 luni în urmă
README.md 09844bc870 feat: Add toolchain.cmake, already tested 11 luni în urmă
docker_run.sh 09844bc870 feat: Add toolchain.cmake, already tested 11 luni în urmă
toolchain.cmake 56754dc995 feat: update Dockerfile to support sudo 9 luni în urmă
ub20.Dockerfile 80a4bbf15c feat: update dockerfile and docker-compose file for ub22 and ub20 2 luni în urmă
ub20.docker-compose.yml 80a4bbf15c feat: update dockerfile and docker-compose file for ub22 and ub20 2 luni în urmă
ub22.Dockerfile 80a4bbf15c feat: update dockerfile and docker-compose file for ub22 and ub20 2 luni în urmă
ub22.docker-compose.yml 80a4bbf15c feat: update dockerfile and docker-compose file for ub22 and ub20 2 luni în urmă

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