gcc 使用了错误的链接器

gcc uses wrong linker

我的 Solaris 系统安装了两个版本的 ld

第一个属于solaris studio:

$ /usr/ccs/bin/ld -V
ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.1514

另一个给 gcc

$ ld -v
GNU ld (GNU Binutils) 2.24

我尝试使用 gcc 和 ld

$ which gcc
/usr/bin/gcc
/usr/bin/gcc -> /opt/csw/bin/gcc

$ which ld 
/usr/bin/ld
/usr/bin/ld -> /opt/csw/gnu/ld

但是在询问gcc使用的是哪个程序时,确定是使用Solaris Studio链接器:

$ gcc -print-prog-name=ld
/usr/ccs/bin/ld

问题:如何让 gcc 使用 /opt/csw/gnu/ld 处的链接器?

gcc 默认编译为使用 Solaris 链接器。您可以使用 LD_ALTEXEC 环境变量覆盖此设置:

export LD_ALTEXEC=/opt/csw/gnu/ld