【问题标题】:How to install LLVMgold.so for clang+llvm binary package?如何为 clang+llvm 二进制包安装 LLVMgold.so?
【发布时间】:2019-07-05 11:13:45
【问题描述】:

我想使用 llvm 控制流完整性,我使用了为 Ubuntu 14.04 提供的 clang+llvm 二进制打包版本 7.0.1。当我使用带有选项 '-fsanitize=cfi -flto -fvisibility=hidden' 的 clang++ 时,我收到以下错误:

/usr/bin/ld: /home/username/llvm-7.0.1/bin/../lib/LLVMgold.so: error loading plugin: /home/username/llvm-7.0.1/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory

知道如何在不使用启用黄金的选项编译源代码的情况下解决这个问题吗?

【问题讨论】:

  • 我做不到。刚刚从源代码构建(并没有听起来那么糟糕)

标签: ubuntu-14.04 clang++ llvm-clang


【解决方案1】:

我最近 llvm 版本 10 也有同样的问题。这似乎不是 llvm 的错误,所以将来不会修补。所以,我在这里写了如何解决这个问题。

构建 llvm 后,您应该运行 make install 命令。但 LLVMgold.so 通常安装到“/usr/local/lib”。因此 clang 显示类似这样的消息 '/../lib/LLVMgold.so: 无法打开共享对象文件:没有这样的文件或目录'

您必须将 LLVMgold 链接到正确的路径。在 ubuntu 中,'ln -sf /usr/lib/llvm-3.4/lib/LLVMgold.so /usr/local/lib/LLVMgold.so' 将解决这个问题。

【讨论】:

  • 有没有办法安装 LLVMgold.so 而无需自己编译 LLVM?
【解决方案2】:

我在与clang 13.0.0-2 链接时收到了类似的错误。

/usr/bin/ld: /usr/lib/llvm-13/bin/../lib/LLVMgold.so: error loading plugin: /usr/lib/llvm-13/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我为llvmgold 运行apt search,发现推荐llvm-13-linker-tools。安装它使问题消失了。

sudo apt-get install llvm-13-linker-tools

我只是通过sudo apt-get install clang 得到了clang。尝试查找 llvm-7 等效项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多