Сборка GCC внутри chroot из исходного кода

Сборка GCC внутри chroot из исходного кода

В предыдущем вопросе я спрашивал о создании chroot, который имитирует мою встроенную среду устройства. Было предложено сначала собрать из исходного кода GCC и binutils внутри моего chroot. Чтобы попытаться сделать это, я скопировал версию libc и двоичный файл gcc на моей хост-машине в chroot. Затем я написал простую программу hello world в файл test.c и попытался собрать в моем chroot следующим образом

  phil@phil-desktop:/usr$ sudo chroot /usr/embedded_chroot1/
  bash-4.2# gcc test.c 
  gcc: error trying to exec 'cc1': execvp: No such file or directory

Я не совсем уверен, что происходит здесь с этой ошибкой. Я скопировал двоичный файл gcc и libc в свой chroot, так почему я не могу скомпилировать? Должен ли я также скопировать все исходные файлы системы и заголовочные файлы в свой chroot?? Я думаю, что у меня концептуальное недопонимание всего процесса использования chroot.

решение1

Сборка gcc имеет возможность самозагружаться без какого-либо существующего компилятора в системе. Вы должны иметь возможностьскачатьи распакуйте gcc, и соберите его внутри вашего chroot без необходимости копировать что-либо извне. Прошло некоторое время с тех пор, как я делал это, но я помню, что это было довольно безболезненно.

Посмотрите наинструкции по сборке для gcc, которые подробно описывают этот процесс. Вам нужно будет собрать собственный компилятор, и все шаги должны быть выполнены внутри вашего chroot, так что gcc будет собран в соответствии с этой системой.

Связанный контент