Как изменить s * root по умолчанию для G CC? - PullRequest
0 голосов
/ 04 февраля 2020

Если вы запустите 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.

по умолчанию.
...