如何设置gcc 4.3默认specs文件?

Gar*_*ary 15 c c++ gcc gcc4

使用gcc版本4.3.2时,我看到如何使用以下命令生成规范:

$ /usr/local/gcc-4.3.2/bin/gcc -v
Using built-in specs
Run Code Online (Sandbox Code Playgroud)

现在更改为与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
Run Code Online (Sandbox Code Playgroud)

我有一个我可以修改的填充规范文件.但是,一旦完成,我仍然看到:

$ /usr/local/gcc-4.3.2/bin/gcc -v
Using built-in specs
Run Code Online (Sandbox Code Playgroud)

我如何告诉gcc默认使用该specs文件而不是强迫我在-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>
Run Code Online (Sandbox Code Playgroud)

如您所见,两个系统之间的主要区别在于现有设置是32位,我现在正尝试在64位系统上进行匹配.Linux的版本是相同的,我正在编译相同版本的gcc.(两个系统gcc 4.3.2是第二个gcc安装,4.1.2用于编译4.3.2)

小智 5

正如Johannes Schaub - litb提出的strace建议暗示的那样,编译器在寻找文件的位置存在问题.事实证明,非工作安装在.bashrc中设置了一个环境变量,导致混淆.

specs文件的正确位置确实与libgcc所在的目录相同.请确保您在那里查看.


Mar*_*ork 0

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

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

alias gcc_Gary gcc -specs /<folder With Specs File>/newSpecsFile
Run Code Online (Sandbox Code Playgroud)

  • 我不相信别名可以在非交互式 shell(例如 Make 使用)中工作。 (5认同)