Libraries

從原始碼在 chroot 中建構 GCC

  • July 16, 2012

在上一個問題中,我詢問了有關創建模擬嵌入式設備環境的 chroot 的問題。有人建議我首先在我的 chroot 中從源 GCC 和 binutils 建構。為了嘗試這個,我將主機上的 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 的整個過程有概念上的誤解。

gcc 建構能夠在系統上沒有任何現有編譯器的情況下自行引導。您應該能夠下載並解壓 gcc,並在您的 chroot 中建構它,而無需從外部複製任何內容。自從我這樣做以來已經有一段時間了,但我記得它相當無痛。

查看gcc 的建構說明,其中詳細說明了此過程。您將想要建構一個本地編譯器,並且所有步驟都應該在您的 chroot 中執行,以便建構 gcc 以匹配該系統。

引用自:https://unix.stackexchange.com/questions/43182