如何强制已经安装的gcc-ar使用特定的binutils版本?

时间:2016-03-03 18:17:50

标签: c++ linux gcc binutils

我从源代码构建了GCC 4.9.3并使用一些前缀安装到我的主目录中,例如: gcc4.9

现在我想使用更新版本的binutils和GCC 4.9.3。我已经构建它们并在我的主目录中单独安装,前缀为binutils2.26

如何强制gcc-ar gcc4.9 ar使用binutils2.26来代替系统一?它始终调用/usr/bin/ar,看起来没有可指定的选项。以某种方式替换/usr/bin/ar不是一种选择 - 我在这台机器上没有root访问权限。

2 个答案:

答案 0 :(得分:2)

使用GCC的EmployeeProvider标志并将其指向包含您要执行的-B的目录。有关此标志的详细信息,请参阅GCC manual

ar

这似乎对我有用:

gcc-ar -B/path/to/your/dir ...

答案 1 :(得分:1)

我设法解决了这个问题。

使用strace,我发现gcc-ar在几个目录中查找ar,包括<gcc install dir>/libexec/gcc/x86_64-redhat-linux/4.9.3

因此,显而易见的解决方案是在此目录中创建指向相应binutils2.26可执行文件的链接:

  cd "<gcc install dir>/libexec/gcc/x86_64-redhat-linux/4.9.3"
  for file in ~/binutils2.26/bin/* ; do ln -s "${file}" ; done

之后,~/binutils2.26/bin中的所有可执行文件将被复制为GCC 4.9.3目录中的链接,并将在按GCC版本构建时自动使用。