qtdocker编译环境
发布时间: 2025-03-26 22:39:09
A. 在 ubuntu-x86 下交叉编译 ARM-64 NCNN 记录贴
在 Ubuntux86 下交叉编译 ARM64 NCNN 的步骤如下:
配置主机环境:
- 确保已安装 Docker。
- 拉取基于 qemu 的 ARM64 镜像,选择与嵌入式板子版本相应的镜像链接。
启动 Docker 容器并挂载工作目录:
- 配置工作目录,例如 /home/ubuntu/Docker/cross。
- 启动 Docker 容器,并将工作目录挂载到容器中,以便在本地模拟 ARM64 环境进行编译。
在容器内编译 NCNN:
- 按照官网教程拉取 NCNN 代码到挂载的工作目录中。
- 在容器内更新源、安装基础包,并替换为清华镜像源以获取 ARM64 架构的依赖包。
- 开始编译 NCNN,编译过程与直接在 ARM64 板子上相同。
- 编译产物默认位于 build/install 目录下。
验证和评估性能:
- 编译完成后,可以将产物直接复制到板子上使用。
- 或在容器内部运行 NCNNBenchmark 以评估性能,注意 x86 模拟 ARM64 的性能会有较大折扣。
编译 python 封装:
- 若需要编译 NCNN 的 Python 封装,在容器中安装与板子上相同的 Python 版本。
- 编译好的 PyNCNN 库位于 build/python 目录下。
- 可以将整个 NCNN 目录复制到板子上,并使用 pip install e . 命令安装。
总结: 使用 qemu 模拟 ARM64 实现的交叉编译,无需配置本地交叉编译器等额外环境,适用于正式部署前的验证。 虽然编译效率相比直接在 ARM64 板子上低,但相比嵌入式板子的性能有显着提升。 此方案对其他库的编译依赖友好,如 QT 等复杂库的交叉编译也值得尝试。
热点内容