Clang 3.8 error: invalid linker name in argument '-fuse-ld=gold-2.25'

Clang 3.8 error: invalid linker name in argument '-fuse-ld=gold-2.25'

我在 CentOS 7.4 上使用 Clang 3.8 来使用第三方库及其(复杂的)makefile 编译 C++ 应用程序。当包括他们的 makefile 和 运行 我自己的时,我在链接期间收到以下错误:

clang-3.8: error: invalid linker name in argument '-fuse-ld=gold-2.25'

我在网上看了看,有人建议将其更改为 -fuse-ld=gold,但仍然没有用。

谁能解释一下这个问题是什么以及我该如何解决?

更新

也尝试了 -fuse-ld=lld 但我仍然收到错误消息:

clang-3.8: error: invalid linker name in argument '-fuse-ld=lld'

您的 clang 构建不支持与 gold 的链接。

Also tried -fuse-ld=lld but I still get an error: clang-3.8: error: invalid linker name in argument '-fuse-ld=lld'

虽然这可能是 Arch 特定的并且可能不适用于 CentOS:

就在几分钟前,我 source-building Godot 使用 scons platform=linuxbsd use_llvm=yes use_lld=yes,面临同样的问题。

原来,lld显然是一个单独的包。 (尝试ld似乎组合失败)

因此,yay -S lld (或者更确切地说 sudo pacman -S lld 立即解决了问题。

[100%] Linking Program        ==> bin/godot.linuxbsd.tools.64.llvm