2011-04-25 19 views
14

當使用gcc版本4.3.2,我看到如何使用生成規格:如何設置gcc 4.3默認規格文件?

$ /usr/local/gcc-4.3.2/bin/gcc -v 
Using built-in specs 

現在切換到同一個目錄中libgcc中:

cd /usr/local/gcc-4.3.2/lib/gcc/x86_64-unknown-linux-gnu/4.3.2 
/usr/local/gcc-4.3.2/bin/gcc -dumpspecs > specs 

我有一個人口稠密的規格文件,我可以修改。然而,一旦做到這一點我還看到:

$ /usr/local/gcc-4.3.2/bin/gcc -v 
Using built-in specs 

我如何告訴GCC使用默認情況下該規範文件,而不是強迫我傳遞一個-specs參數每個編譯?我想它在那裏,我得到以下匹配另一個系統,我有:

$ /usr/local/gcc-4.3.2/bin/gcc -v 
Reading specs from /usr/local/gcc-4.3.2/lib/gcc/i686-pc-linux-gnu/4.3.2/specs</code> 

正如你可以看到,這兩個系統之間的主要區別是,現有的設置是32位的,現在我想匹配在64位系統上。 Linux的版本是相同的,我正在編譯相同版本的gcc。 (對於這兩個系統,gcc 4.3.2是第二個gcc安裝,4.1.2用於編譯4.3.2)

+1

嘗試'strace gcc 2>&1 | grep -i spec'來查看它在哪裏查找文件。 – 2011-04-25 12:57:52

+0

@Johannes Schaub - litb 它沒有提供任何結果,而工作系統提供了規格文件的路徑。它也沒有給位於/ usr/bin中的gcc的4.1.2版本運行該命令的結果。 (工作系統爲4.3.2和4.1.2版本的編譯器提供了路徑,儘管4.1。2版本有「(沒有這樣的文件或目錄)」,因爲它使用內置規格。) – Gary 2011-04-25 14:20:06

+1

@Johannes Schaub - litb Scratch that。 Strace沒有安裝。它似乎試圖訪問'/ usr/local/include/x86_64-unknown-linux-gnu/4.3.2/specs','/ usr/local/include/specs','/ usr/lib/gcc/x86_64 -nuxnown-linux-gnu/4.3.2/specs','/ usr/local/include /../../ x86_64-unknown-linux-gnu/lib/specs','/ usr/local/include /。 ./../ x86_64-unknown-linux-gnu/lib/x86_64-unknown-linux-gnu/4.3.2/specs'或'/usr/local/gcc-4.3.2/lib/gcc/x86_64-unknown -linux-gnu/specs',所有這些都失敗了。 – Gary 2011-04-25 14:41:15

回答

0

您可以使用您的spec文件重建gcc作爲構建的一部分!

一個更簡單的解決方案是創建一個別名:

alias gcc_Gary gcc -specs /<folder With Specs File>/newSpecsFile 
+3

我不認爲別名可以在非交互式shell中使用,例如Make uses。 – 2011-04-25 16:07:19

5

截至由約翰內斯·紹布的strace的建議暗示 - litb,它是與編譯器在哪裏一直在尋找的文件有問題。事實證明,非工作安裝在.bashrc中設置了一個環境變量,這引起了混淆。

規格文件的正確位置確實與libgcc所在的目錄是相同的。只要確保您在那裏。

+2

你可以接受你自己的回答 – 2011-08-16 01:26:28

+0

@加里,我很好奇......什麼env變量導致了麻煩? – 2017-06-05 20:48:02

1

我用這個命令行:

/usr/bin/set-gcc-default-3.sh的i686-PC-mingw32的

但你可能會想:

/usr/bin/set-gcc-default-4.sh的i686-PC-Linux的GNU

(注意 - -3 4代替)

這是用 「替代品」 的東西建,請參閱

/usr/sbin/alternatives.exe --help

並且還看到這樣的頁面as http://linux.about.com/library/cmd/blcmdl8_alternatives.htm

+0

這看起來很有趣。 GCC是否提供'set-gcc-default- *'腳本?我似乎沒有使用Linaro設備。 – jww 2016-05-19 09:55:11