GCC кросс-компиляция с использованием rootfs - PullRequest
0 голосов
/ 10 декабря 2018

В настоящее время мы разрабатываем приложение для встроенной системы ARM, работающей под управлением полной ОС Linux (NVIDIA Jetson TX2).У меня есть копия rootfs из встроенной системы, а также набор инструментов GNU для ARM версии 8.2-2018.08.У меня возникают проблемы с получением компилятором GCC (gcc-arm-8.2-2018.11-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc) для поиска в правильном каталоге файлов rootfs для файлов включения и библиотеки.

Я установил переменную —sysroot, чтобы указать местоположение моего sysroot,Тем не менее, просматривая каталоги lib и include, есть подпапка usr/lib/aarch64-linux-gnu, которая содержит дополнительные include и библиотеки, и именно они действительно нужны.Например, вместо библиотек, находящихся в $rootfs/usr/lib или $rootfs/usr/local/lib, вместо библиотек в $rootfs/usr/lib/aarch64-linux-gnu, которые я тестировал, и используя команды -I / -L, я могу получить проект для компиляции.

У меня следующие вопросы

  • Использует ли -I и -L "правильный" способ сделать это?Если нет, что это такое?
  • Почему linux помещает эти библиотеки в этот другой каталог?
  • При компиляции с использованием --sysroot я вижу, что проверяются другие каталоги, не связанные с sysroot.Зачем gcc делать это?
...