【问题标题】:Clang 3.8 error: invalid linker name in argument '-fuse-ld=gold-2.25'Clang 3.8 错误:参数“-fuse-ld=gold-2.25”中的链接器名称无效
【发布时间】:2018-10-04 11:37:05
【问题描述】:

我在 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'

【问题讨论】:

    标签: c++ build linker clang llvm-clang


    【解决方案1】:

    您的 clang 版本不支持与黄金链接。

    【讨论】:

    • 您好,我也尝试了 '-fuse-ld=lld' 选项,但这也不起作用?
    • -fuse-ld= 并不受支持。
    • 哦,你会推荐什么?对链接一窍不通,只想创建动态库!
    • LDFLAGS+=-shared -fuse-ld=gold-2.25
    【解决方案2】:

    也尝试过 -fuse-ld=lld 但我仍然收到错误消息: clang-3.8: error: invalid linker name in argument '-fuse-ld=lld'

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

    几分钟前,我正在使用 scons platform=linuxbsd use_llvm=yes use_lld=yes 构建源代码 Godot,面临同样的问题。

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

    所以,yay -S lld (或者更确切地说是sudo pacman -S lld 立即解决了这个问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      • 2016-03-31
      • 2020-04-02
      • 1970-01-01
      • 2012-04-11
      • 2018-05-27
      相关资源
      最近更新 更多