【问题标题】:LLVM opt doesn't work on macOS Big Sur: -bash: opt: command not foundLLVM opt 在 macOS Big Sur 上不起作用:-bash: opt: command not found
【发布时间】:2021-05-01 21:39:29
【问题描述】:

我使用 git clone https://github.com/llvm/llvm-project.git 从存储库下载了 LLVM,并使用以下命令将其安装在 macOS Big Sur 上:

$ cmake ../llvm -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=~/llvm-project/build \
-DBUILD_SHARED_LIBS=on \
-DLLVM_ENABLE_PROJECTS=clang

安装很顺利,我可以使用clang -c -emit-llvm foo.c -o foo.bc获取foo.bc来编译我的foo.c程序。

但是,当我使用opt -dot-cfg foo.bc 获取CFG 时,出现了这个错误:-bash: opt: command not found

有人遇到过这个错误吗?以前版本的操作系统的解决方案。没用!

【问题讨论】:

  • “我可以使用 clang 编译我的 foo.c 程序” - 你确定你使用的是新构建的 clang,而不是 XCode 附带的那个吗? opt 应该在 ~/llvm-project/build/binclang 旁边。
  • @mcilloni,谢谢!你的评论解决了这个问题!我没有使用手动安装的clang!当我编译将路径放置到我的clang 和我的opt 时,它工作得很好! ps.:如果你愿意,你可以发布一个答案让我接受它作为一个解决方案!

标签: macos clang llvm


【解决方案1】:

当你克隆一个 git 项目时,你不需要包含该文件。你只需要输入

git clone https://github.com/llvm

【讨论】:

  • 嗨,@Evergreen!如果我不包含该文件,我会收到一个错误作为响应(fatal: repository 'github.com/llvm' not found)。所以我将它一直包含到 llvm-project 中。
  • 是的,我的错,我做了一个应该有效的新答案,这次是真的
【解决方案2】:

调用命令时使用两个点。

../llvm

这告诉 bash “上移一级目录”,而 llvm 不是上一级目录。这将起作用:

cmake ./llvm -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=~/llvm-project/build \
-DBUILD_SHARED_LIBS=on \
-DLLVM_ENABLE_PROJECTS=clang

【讨论】:

  • 克隆存储库后,我运行cd llvm-projectmkdir build && cd build。然后,我在 build 中运行命令。如果我从../llvm 中删除一个点,则会发生错误,因为在./llvm 指示的路径中找不到目录。
  • 我不知道 :( 对此感到抱歉
【解决方案3】:

工具opt安装在$HOME/llvm-project/build/bin中。

您需要在 $PATH 中添加 $HOME/llvm-project/build/bin

【讨论】:

  • 谢谢,@philippe!那没有用!正如@mcilloni 所说,我相信我正在使用随 XCode 发送的 Clang。我会看看这个,然后再试一次!
  • 试试find $HOME/llvm-project -name opt 如果你找不到它,那意味着它没有正确构建。你在cmake ../llvm ... 之后运行cmake --build .; make install 吗?
  • 是的!我愿意! @mcilloni 的评论解决了这个问题!谢谢你的帮助!
【解决方案4】:

“我可以使用clang 编译我的foo.c 程序” - 你确定你使用的是新构建的clang 而不是XCode 附带的那个吗? opt 应该在 ~/llvm-project/build/binclang 旁边。 – 由 @mcilloni 于 5 月 2 日 17:38 解决

【讨论】:

    猜你喜欢
    • 2021-06-28
    • 2021-03-15
    • 2014-08-23
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2021-11-09
    • 2016-01-06
    • 2020-10-31
    相关资源
    最近更新 更多