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

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

  • вин10 64 бит

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

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

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

Цель

  • Кросс-компиляция opencv для создания статической библиотеки (.a) для встроенной платформы aarch64.

Метод конфигурации среды

Создать статическую библиотеку

  • -DBUILD_SHARED_LIBS=OFFПо умолчанию будет сгенерирована динамическая библиотека (так), а генерацию динамической библиотеки можно отключить через cmake configuration , чтобы можно было сгенерировать статическую библиотеку

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

другой

  • Если вы чувствуете, что команда cmake слишком длинная, вы можете поместить platforms/linux/aarch64-musl.toolchain.cmakeв нее каждую конфигурацию, чтобы команда cmake была очень оптимизирована.

  • Откройте vim platforms/linux/aarch64-musl.toolchain.cmake, а затем настройте переключатель каждой функции или сторонней библиотеки.

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

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")

set(CMAKE_BUILD_TYPE "Release")
set(WITH_CAROTENE OFF)
set(WITH_ITT OFF)
set(WITH_OPENCL OFF)
set(WITH_ADE OFF)

include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")
  • set(CMAKE_BUILD_TYPE "Release")Скомпилируйте релизную версию

  • set(WITH_ITT OFF)закрыто

  • set(WITH_CAROTENE OFF)Закрыта сторонняя библиотека CAROTENE

  • set(WITH_OPENCL OFF)Закрыто

  • set(WITH_ADE OFF)Закрыть ADE

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

  • make, можно сделать многопоточную компиляцию типа make -j12, что значительно ускоряет скорость компиляции.Конечно, аппаратная конфигурация компьютера для компиляции должна быть выше, с многоядерностью и большим объемом памяти

  • make install, вы можете положить сгенерированную библиотеку opencv в текущую директорию build_a/install, потому что она кросс-компилируемая, поэтому вам нужно обратить особое внимание на путь установки, не устанавливайте ее в системную директорию.

Посмотреть скомпилированные продукты

  • После того, как make будет скомпилирован и выполнен, make installон будет сохранен по указанному пути, который не подходит по умолчанию, и будет находиться в текущем пути сборки, например build_a/installкаталоге

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

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

  • Вы можете настроить cmake для переключения различных необходимых опций, включая сторонние библиотеки и т. д.

  • Вы можете создать статическую библиотеку opencv, но использовать статическую библиотеку и подключаться статически, поэтому объем приложения будет относительно большим.

Supongo que te gusta

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