2011-10-05 101 views
4

我正在尋找爲ARM系統創建GCC的原生版本,並且遇到了一些麻煩。生成機器是i686-linux。我看到的每個教程都告訴我如何設置實際的交叉編譯套件(我已使用crosstools-ng完成)。但是,我沒有看到與編譯本機ARM GCC相關的任何內容。我使用的配置字符串如下,我只在頭文件中設置了sysroot。我還交叉編譯並安裝了GMP和MPFR。使用交叉編譯器編譯原生GCC for

../../gcc-4.3.5/configure –host=arm-unknown-linux-gnueabi –build=i686-build_pc-linux-gnu –target=arm-unknown-linux-gnueabi –prefix=/home/vm/gcc-native/sysroot –with-sysroot=/home/vm/gcc-native/sysroot –enable-shared –enable-threads –disable-libmudflap –disable-libssp –disable-libgomp –disable-libstdcxx-pch –with-gnu-as –with-gnu-ld –enable-languages=c,c++ –enable-symvers=gnu –enable-__cxa_atexit –disable-nls –disable-multilib –with-gmp=/home/vm/gcc-native/sysroot/ –with-mpfr=/home/vm/gcc-native/sysroot/ 

GCC將建立一段時間,但隨後死亡與此:

checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile.

我不知道如何做到這一點連我的系統上運行,因爲我在i686-linux和建設目標/主機都是arm-linux。我現在的想法是找到一個ltib發行版並查看GCC的規格文件並嘗試遵循所有步驟。由於與std名稱空間衝突,我的系統板附帶的GCC無法在我的系統上編譯。

任何信息/鏈接將不勝感激!

+0

也許你可以在'configure'腳本里面找到計算目標文件後綴的部分並找出它失敗的原因。或者,也許只是修復它總是返回'.o'。 –

+0

實際上,構建系統可能會嘗試運行跨構建(arm)可執行文件,並失敗。修復這個特殊的測試是沒有意義的。它將無法運行下一個。有必要查看構建日誌以找出發生了什麼問題。 –

回答

2

查看config.log文件(可能不是最高級的文件),看看測試失敗時它要做什麼。只要grep爲cannot compute suffix消息,你應該找到正確的位(它不會在文件的末尾)。

請注意,如果您要構建跨本地工具鏈,您需要在某處的路徑上工作arm-unknown-linux-gnueabi-gcc。即你需要一個交叉編譯器來構建跨本地編譯器。