- Портативный: может запускаться из любого каталога (домашняя папка, USB-накопитель, папка проекта) без установки системы
- Независимо от дистрибутива: работает одинаково в Ubuntu, RHEL, Arch и т. д.
- Автономный: не зависит от системной glibc или других хост-библиотек
- Поддержка нескольких библиотек: Может компилировать как 32-битные (-m32), так и 64-битные (-m64) двоичные файлы
- Пакеты дистрибутива (например, `gcc-multilib`) интегрируются с системой и не переносятся между дистрибутивами.
- Сборка с `--prefix` создает перемещаемую установку, но по-прежнему зависит от системных библиотек.
- Официальная документация GCC предполагает системную интеграцию.
- [Этот вопрос 2013 года] (Portable gcc для linux) спрашивал об этом, но пришел к выводу, что единственным вариантом является создание его самостоятельно.
Я попытался собрать GCC с его собственной glibc и библиотеками, чтобы создать автономную структуру sysroot. Однако я столкнулся с проблемами:
- Настройка путей динамического компоновщика как для 32-битных, так и для 64-битных двоичных файлов.
- Обеспечение совместной работы всех компонентов (binutils, glibc, GCC) с возможностью перемещения.
- Создание сценариев-оболочек, которые правильно обрабатывают флаги `-m32`/`-m64`, сохраняя при этом переносимость.
Кто-нибудь успешно создал по-настоящему портативную цепочку инструментов GCC, отвечающую этим требованиям? Если да, то каков подход?
Подробнее здесь: https://stackoverflow.com/questions/798 ... at-runs-on
Мобильная версия