如何为clang + llvm二进制软件包安装LLVMgold.so?

时间:2019-02-11 21:24:17

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

我想使用llvm控制流完整性,并且我使用了Ubuntu 14.04附带的clang + llvm二进制打包版本7.0.1。当我将clang ++与选项'-fsanitize = cfi -flto -fvisibility = hidden'一起使用时,出现以下错误:

/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

有什么主意,如何在不使用启用黄金的选项编译源代码的情况下解决该问题?

1 个答案:

答案 0 :(得分:0)

我最近的 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' 会解决这个问题。