從原始碼在 chroot 中建立 GCC

從原始碼在 chroot 中建立 GCC

在上一個問題中,我詢問如何建立一個模擬我的嵌入式裝置環境的 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 的整個過程存在概念上的誤解。

答案1

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

看著那(這gcc 的建置說明,其中詳細說明了此過程。您將需要建立一個本機編譯器,並且所有步驟都應在 chroot 內執行,以便建置 gcc 來匹配該系統。

相關內容