我从源代码构建了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访问权限。
答案 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版本构建时自动使用。