Как я могу скомпилировать GCC как статический бинарный файл? - PullRequest
1 голос
/ 22 февраля 2010

Как я могу скомпилировать компилятор GCC, чтобы я мог перенести все это в другую систему и использовать программу? Я тоже не против загружать другие файлы, но есть ли способ собрать все необходимые системные библиотеки? ОС и Arch будут оставаться постоянными в разных системах, но одна может содержать Slackware, а другая - Debian.

1 Ответ

0 голосов
/ 22 февраля 2010

Не пытайтесь построить его как статический двоичный файл. Это безнадежно.

Вместо этого посмотрите, как создаются кросс-компиляторы. Затем сделайте то же самое для своего GCC, за исключением того, что вы будете собирать для той же архитектуры ЦП. Соберите ваши binutils в / opt / mygcc, соберите свой GCC в / opt / mygcc, соберите туда свои собственные системные библиотеки, если хотите, тоже.

Основная проблема, связанная с игнорированием системных библиотек по умолчанию, заключается в том, что программы, создаваемые вами для какой-либо другой библиотеки, могут не работать в системе.

Даже если вы создаете статические двоичные файлы, вы можете получить двоичный файл, который не будет работать в более старом ядре ОС. Например, pthreads, построенные на ядре NPTL Linux, не будут работать на ядре 2.2 или 2.4.

...