2013-01-22 25 views
4

GCC的選項是否改變了它使用的彙編器的路徑?我在使用GCC嘗試編譯Haskell時遇到了Solaris /usr/ccs/bin/as錯誤,但在我的路徑中有一份GNU as,所以當我輸入which asas --version時,它們使用的是GNU版本,而不是Solaris版本。不幸的是,GCC似乎忽略了路徑中的GNU版本並進入了Solaris版本。我試圖在Solaris上構建Haskell,但我認爲它與Solaris彙編程序無關。我希望我可以用一個簡單的包裝腳本來改變這種行爲,所以我不必重新編譯GCC。如何選擇GCC使用的彙編器?

回答

2

在運行時指定要使用的彙編程序是不可能的。它具有配置GCC時要做到:

--with-GNU-作爲

指定編譯器應該假設它找到的彙編程序是GNU 彙編。但是,這不會修改規則來查找彙編程序,如果找到的彙編程序實際上不是GNU彙編程序,將會導致混淆。 (混亂也可能導致如果編譯器發現GNU彙編但還沒有 配置了--with-GNU-AS)。

注意我已經把斜體部分。當然,你可以暫時改變/usr/ccs/bin/as來調用gnu彙編程序(前提是你有必要的權限),但是上面的內容似乎表明你很可能會遇到問題。 gcc構建過程實際上會檢查彙編程序支持的功能,併爲該彙編程序生成代碼。

我建議你先構建一個新版本的gcc(配置爲使用gnu工具),然後用它來構建ghc。

+1

-B標誌(gcc版本6)如何? –