- Я использую mk-sbuild для настройки Cross Compilation, и я установил несколько пакетов с Sbuild-Apt Как это:
< /code>
Я проверил, что файл пакета доступен в папке chroot: < /li>
< /ol>
ls /var/lib/schroot/chroots/rpibookworm-arm64-arm64/usr/lib/aarch64-linux-gnu/pkgconfig/
dbus-1.pc gio-2.0.pc gio-unix-2.0.pc glib-2.0.pc
< /code>
Я использую файл cmake: < /li>
< /ol>
# Cross-compilation system information
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
# The sysroot contains all the libraries we might need to link against and
# possibly headers we need for compilation
set(CMAKE_SYSROOT /var/lib/schroot/chroots/rpibookworm-arm64-arm64)
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_LIBRARY_ARCHITECTURE aarch64-linux-gnu)
set(CMAKE_STAGING_PREFIX $ENV{HOME}/RPi-dev/staging-aarch64-rpi3)
# Set the compilers for C, C++ and Fortran
set(RPI_GCC_TRIPLE "aarch64-rpi3-linux-gnu")
set(CMAKE_C_COMPILER ${RPI_GCC_TRIPLE}-gcc CACHE FILEPATH "C compiler")
set(CMAKE_CXX_COMPILER ${RPI_GCC_TRIPLE}-g++ CACHE FILEPATH "C++ compiler")
# Set the architecture-specific compiler flags
set(ARCH_FLAGS "-mcpu=cortex-a53+crc+simd")
set(CMAKE_C_FLAGS_INIT ${ARCH_FLAGS})
set(CMAKE_CXX_FLAGS_INIT ${ARCH_FLAGS})
# Don't look for programs in the sysroot (these are ARM programs, they won't run
# on the build machine)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# Only look for libraries, headers and packages in the sysroot, don't look on
# the build machine
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE arm64)
< /code>
Cmake использует правильный компилятор и другие инструменты из Toolchain, но по какой -то причине не может найти пакеты в этой папке Chroot: < /p>
include(FindPkgConfig)
pkg_check_modules(GLIB glib-2.0 gio-2.0 REQUIRED)
Подробнее здесь: https://stackoverflow.com/questions/797 ... ee-package
Мобильная версия