2013-04-14 47 views
2

我正在編譯ARM的程序。生成文件有一個標誌-msoft-float這是告訴編譯器使用軟件浮點模擬。我的問題是如何在makefile中指定使用硬件浮點指令。我嘗試-mhard-float,但如果我這樣做,我會得到錯誤。我也嘗試過-msoftfp-float,正如this site所述,但編譯器甚至不能識別該標誌。所以,請告訴我該如何解決這個問題。如何告訴編譯器使用硬件浮點指令與ARM

+0

請確認編譯器的版本,如果你知道它是(CodeSourcery的,Linaro的,Debian的,Ubuntu的,等等)來了。 –

+0

在http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html閱讀「-mfpu」。 – auselen

回答

-1

嘗試gcc選項:

-mno-soft-float

+0

它不識別此標誌。 – MetallicPriest

+0

@MetallicPriest:這意味着你的工具鏈不支持它。這對於免費的工具鏈來說並不少見。商業的人經常提供這個。 – leppie

4

軟浮動是配置GCC一個選項,它是開源的,任何人都可以配置工具鏈有/無軟浮動支持。請參閱http://crosstool-ng.org/瞭解構建您自己的編譯器的工具。我從gcc 4.1.2正在使用的引用鏈接中獲取它;你可能會有最好的運氣-mfloat-abi=softfp。 ARM上有三種變體。 Debian ARM floating point wiki在描述差異方面做得非常出色。另外Debian VFP comparison可能是感興趣的。

+1

更多鏈接:[Linaro](https://wiki.linaro.org/Linaro-arm-hardfloat),[Raspberry Pi Blog](http://www.memetic.org/raspbian-benchmarking-armel-vs-armhf /)。此外,您的操作系統(或缺乏)可能會影響您的選擇。如果'-mfloat-abi = softfp'或'-mfloat-abi = hard'都不行,你需要一個新的編譯器。如果'-mfloat-abi = softfp'有效,你需要指定'-mfpu = XXX'。 –