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 等復雜庫的交叉編譯也值得嘗試。
熱點內容