Кросс-компиляция opencv на платформе Ubuntu 20.04 aarch64

Среда компилятора

  • вин10 64 бит

  • Виртуальная машина VMware Workstation Pro 16

  • Установка виртуальной машины Ubuntu 20.04

  • версия opencv: последняя версия 4.7 с github

Цель

  • Кросс-компиляция opencv для встроенной платформы aarch64

скачать opencv

  • Вы можете скачать релизную версию напрямую с github или использовать git clone для последнего хранилища opencv.

  • гитхаб opencv https://github.com/opencv/opencv

  • git clone https://github.com/opencv/opencv.git

скомпилированный файл конфигурации

  • Здесь используется тулчейн кросс-компиляции aarch64-linux-musleabi-gcc, либо можно использовать официальный, предоставленный ARMaarch64-linux-gnu-gcc

  • Файл конфигурации: platforms/linux/aarch64-gnu.toolchain.cmakeскопируйте копию, измените его platforms/linux/aarch64-musl.toolchain.cmake, конечно, вы также можете использовать существующий напрямую

  • Измените platforms/linux/aarch64-musl.toolchain.cmakeимя цепочки инструментов кросс-компиляции в: здесь изменено на"aarch64-linux-musleabi"

set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")
set(GNU_MACHINE "aarch64-linux-musleabi" CACHE STRING "GNU compiler triple")
include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")

Настройте цепочку инструментов кросс-компиляции

  • Загрузите и разархивируйте тулчейн кросс-компиляции aarch64, а затем настройте переменные среды.Измените sudo vim /etc/profileфайл здесь и добавьте его в конец файла export PATH=$PATH:/home/zhangsz/linux/tools/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin, то есть экспортируйте путь тулчейна кросс-компиляции в переменную окружения

  • source /etc/profileЧтобы вступить в силу, вы можете ввести aarch64-linux-musleabi-gcc -v, чтобы подтвердить, что цепочка инструментов кросс-компиляции gcc вступает в силу.

вставьте сюда описание изображения

скомпилировать opencv

  • Opencv использует cmake для настройки по умолчанию, а шаги по созданию динамической библиотеки (so) следующие:

  • В каталоге opencv создайте папку, например build_so

  • cd build_soВойдите в build_soкаталог, а затем выполните команду конфигурации cmake:

cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/aarch64-musl.toolchain.cmake .. -DCMAKE_CXX_FLAGS="-march=armv8-a" -DCMAKE_C_FLAGS="-march=armv8-a" -DBUILD_SHARED_LIBS=ON -DWITH_ADE=OFF

  • Примечание. -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/aarch64-musl.toolchain.cmakeУказывает на использование самоопределяемых файлов конфигурации кросс-компиляции gcc.

  • -DBUILD_SHARED_LIBS=ONУказывает на создание динамических библиотек (так)

  • -DCMAKE_CXX_FLAGS="-march=armv8-a" -DCMAKE_C_FLAGS="-march=armv8-a"Сгенерированную платформу можно указать:armv8-a

  • Наконец, обратите внимание на путь выполнения cmake, он там один .., то есть верхний уровень — это каталог opencv, а opencv/build_soкоманда cmake в данный момент выполняется в каталоге

список конфигурации

  • После выполнения cmake будет сгенерирован список make, но компиляция еще не началась

вставьте сюда описание изображения

  • Здесь нужно обратить внимание на то, правильно ли определен путь тулчейна кросс-компиляции, если нет, то обратите внимание на сброс переменных окружения тулчейна кросс-компиляции gcc.

вставьте сюда описание изображения

  • Если каталог установки не настроен, он будет установлен в каталоге установки в каталоге build_so по умолчанию.Обратите внимание, что если это кросс-скомпилированная библиотека opencv, ее нельзя установить по пути текущей системы Ubuntu на ПК. Потому что система Ubuntu находится на платформе x86/64.

заставить начать компиляцию

  • Ввод makeдля начала компиляции, многопоточной компиляции, такой как make -j1616-поточная компиляция, многопоточность необходимо настроить в соответствии с текущей конфигурацией аппаратного обеспечения компьютера (номер ядра ЦП).

  • Виртуальная машина собрана с ubuntu.Рекомендуется использовать высокопроизводительный компьютер.Виртуальная машина оснащена 8-ядерным процессором и более 8 ГБ памяти.

вставьте сюда описание изображения

  • После завершения компиляции make installфайлы библиотек и заголовков, сгенерированные opencv, будут храниться в текущем build_so/install каталоге .

просмотреть продукт

  • Путь продукта opencv по умолчанию:build_so/install
zhangsz@zhangsz:~/rtt/opencv/opencv/build_so/install$ ls
bin  include  lib  share

вставьте сюда описание изображения

краткое содержание

  • Opencv может настраивать открытие и закрытие определенных сторонних программных пакетов и функций с помощью файлов cmake или команд cmake.

  • Opencv теперь можно использовать не только на платформах ПК, но и на встроенных платформах посредством кросс-компиляции.

Supongo que te gusta

Origin blog.csdn.net/tcjy1000/article/details/131195531
Recomendado
Clasificación