2016-12-07 72 views
0

我對linux和GCC很新。樹莓派的價格引誘了我的興趣。我有興趣使用GCC交叉編譯一些C代碼,以針對某些嵌入式硬件,特別是Cortex-M3微。我最終想要有一整套編譯器/編程器/調試器,但現在我開始編譯。'構建gcc交叉編譯器'是什麼意思?

所以,我做的RP3快速非交叉編譯測試,一切都很好。現在我正在研究如何交叉編譯並鎖定我的UC。在線gcc文檔似乎表明我可以使用普通的vanilla gcc,並且只是指定一些命令行選項來執行交叉編譯:https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

但是四處搜索,我發現很多人提到構建gcc交叉編譯器。這是什麼意思?

gcc是否有作爲交叉編譯器加倍的選項?如果是這樣,爲什麼人們希望「構建」一個交叉編譯器?

+0

見*交叉編譯特定選項*的通過的方式約90%[GCC安裝說明](https://gcc.gnu.org/install/configure.html#TOC3)(GCC 6.2.0版本 - URL可能會在將來更改,但基本部分是版本中性)。 –

+0

因此,包含在RP3中的GCC不能像交叉編譯器那樣工作?我將不得不遵循該鏈接並從源碼重建GCC,從而提供正確的交叉編譯器選項?這些進程的輸出將成爲特定於Cortex-M3的交叉編譯器?我的理解是否正確? – user2913869

+0

因爲我對RP3或Cortex-M3一無所知,所以我不能說交叉編譯器是否可以交叉編譯到另一個交叉編譯器,但有一個公平的機會,答案是「否」。如果是這樣的話,你必須找到其他人爲你構建的交叉編譯器,或者自己構建它。這可能並不容易 - 但我從來沒有嘗試構建一個GCC交叉編譯器,所以我不確定這一點。注意你可能需要的其他基礎設施 - 用於跨平臺的'binutils'。 –

回答

0

交叉編譯器是一個是在機器類型A創建的(硬件的組合和O/S)和任一運行在不同的乙機器類型或運行於A類,但產生軟件要在不同的計算機上運行B型。

因此,如果您有一臺使用x86_64 CPU的Linux機器並運行某個版本的Linux,但您編譯GCC以便它可以在運行某個版本的AIX的IBM PowerPC平臺上運行,那麼您應該創建一個交叉編譯器。

另一變型可能使用的Linux機器上運行,但對於嵌入式硬件芯片產生碼的x86_64的CPU來具有Linux上的編譯器。然後,您可以從Linux機器的CPU能力中受益,同時部署到一個更小,功能更弱的系統,可能沒有自己的o/s,或者只有最小的o/s。