17

使用 gcc 4.3.2 版时,我看到如何使用以下方法生成规范:

$ /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)

4

3 回答 3

5

正如 Johannes Schaub - litb 的 strace 建议所暗示的,这是编译器在哪里寻找文件的问题。事实证明,非工作安装在 .bashrc 中设置了一个环境变量,这导致了混乱。

specs 文件的正确位置确实与 libgcc 所在的目录相同。请确保您正在寻找那里。

于 2011-04-26T13:51:11.303 回答
1

我使用了这个命令行:

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

但你可能想要:

/usr/bin/set-gcc-default-4.sh i686-pc-linux-gnu

(注意 -4 而不是 -3)

这是使用“替代品”的东西构建的,请参阅

/usr/sbin/alternatives.exe --help

还可以查看http://linux.about.com/library/cmd/blcmdl8_alternatives.htm等页面

于 2013-12-19T16:14:52.810 回答
0

作为构建的一部分,您使用您的规范文件重建 gcc!

一个更简单的解决方案是创建一个别名:

alias gcc_Gary gcc -specs /<folder With Specs File>/newSpecsFile
于 2011-04-25T15:09:54.980 回答