Если вы запустите gcc -print-sysroot
, он распечатает местоположение по умолчанию sys root. Это также работает для кросс-компиляторов, например:
docker_user@8d9f484fffc7:/build_env$ /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -print-sysroot
/opt/poky/1.7/sysroots/armv7a-vfp-neon-poky-linux-gnueabi
Я знаю, что вы можете указать другой sys root, передав gcc --sysroot=dir
, но мой вопрос:
- Как мне изменить местоположение g cc по умолчанию sys root?
В некоторых случаях я обновляю компилятор нашей системы. Я скачал готовый кросс-компилятор linaro здесь . Проблема в том, что мне нужно использовать sys root нашей цели, чтобы она знала обо всех библиотеках, доступных во время выполнения. В предыдущем наборе инструментов была правильная команда sys root, потому что мы использовали Yocto (Poky). Для этого набора инструментов мы используем предварительно скомпилированный linaro.
Я попытался найти файл конфигурации, который содержит путь по умолчанию sys root, и я не смог его найти. Я нашел путь, запеченный в двоичный файл g cc через strings
, что заставляет меня бояться, что sys root по умолчанию запекается во время компиляции g cc и поэтому неизменен.
Кто-нибудь знает, возможно ли то, что я пытаюсь сделать sh? Передача --sysroot
каждому оператору компилятора и компоновщика будет обременительной задачей для устаревшей базы кода, с которой я работаю, в связи с тем, как настроена система сборки. Моя жизнь была бы намного проще, если бы у G CC была возможность постоянно устанавливать sys root.
по умолчанию.