Gcc
cc1和gcc的關係?
我正在嘗試在 Linux 伺服器上的主目錄中安裝 Ruby(沒有 root 訪問權限),這當然需要使用
gcc
. 我能找到的最接近的東西是一個同名的目錄(如果你深入的話)包含cc1
:>: find / -iname gcc 2> /dev/null /usr/libexec/gcc >: tree -if /usr/libexec/gcc /usr/libexec/gcc /usr/libexec/gcc/x86_64-redhat-linux /usr/libexec/gcc/x86_64-redhat-linux/4.1.1 /usr/libexec/gcc/x86_64-redhat-linux/4.1.1/cc1 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2 -> 4.1.1
CC1 在 Wikipedia 上重定向到 GCC的事實似乎暗示了一些接近身份的東西,但是除了關於重定向的註釋之外,GCC 頁面上沒有其他提及 CC1,而且Google搜尋並沒有給我任何有用的東西,我嘗試
cc1
使用gcc
失敗的地方。它們之間究竟是什麼關係?它是否給了我在這台機器上編譯 Ruby 的希望?
GCC 的編譯有多個階段,每個階段都使用不同的內部命令。特別是C,首先用cpp進行預處理,然後編譯成彙編,彙編成機器語言,然後連結在一起。
cc1 是內部命令,它採用預處理的 C 語言文件並將它們轉換為彙編。它是編譯 C 的實際部分。對於 C++,有 cc1plus 和其他用於不同語言的內部命令。
有一本關於 Wikibooks 的書用圖片解釋了這個過程。
不幸的是,cc1 是一個內部命令,並且只是安裝的一部分,如果你只有這些,你將無法編譯。