当我尝试运行 C 和 C++ 程序时,我得到了
collect2: fatal error: cannot find 'ld' compilation terminated.
我已经安装了 GCC 和 G++ 最新版本。
答案1
就我而言,我通过以下解决方法解决了这个问题:
在交叉编译器 bin 目录中,我创建了一个指向编译器的符号链接
ld (ld -> powerpc-fsl-linux-ld).
然后在 makefile 或构建脚本中,我将工具链文件夹添加到 PATH 变量中
export PATH=$PATH:"toolchain-dir-absolute-path"
有效!
答案2
答案3
您可以通过 安装黄金链接器apt-get install binutils-gold
。
对我来说,这仍然会出错,因为 binutils-gold 会安装 /usr/bin/ld.gold,并且通过 strace 发现 gcc 似乎想要一个以完整主机三元组命名的二进制文件,例如 x86_64-nptl-linux-gnu-ld.gold。我必须对其进行符号链接ln -s /usr/bin/ld.gold /usr/bin/x86_64-nptl-linux-gnu-ld.gold
,然后一切就都正常了。
答案4
无论出于什么原因,我的/usr/bin/ld.bfd
权限都不允许所有用户读取或执行。 chmod a+rx /usr/bin/ld.bfd
解决了我的问题