當使用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)
嘗試'strace gcc 2>&1 | grep -i spec'來查看它在哪裏查找文件。 – 2011-04-25 12:57:52
@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
@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