Macos 苹果LLVM和LLVM的区别

Macos 苹果LLVM和LLVM的区别,macos,llvm,Macos,Llvm,我已经安装了Apple的命令行工具9.1版,正在学习LLVM教程。我需要使用一些库,如llvm/ADT和llvm/IR,但在运行代码时出错 main.cpp:1:10: fatal error: 'llvm/ADT/APFloat.h' file not found #include "llvm/ADT/APFloat.h" ^~~~~~~~~~~~~~~~~~~~ 1 error generated. 我似乎也没有像汇编程序这样的工具。这些东西在苹果的版本中不可用吗?我可以

我已经安装了Apple的命令行工具9.1版,正在学习LLVM教程。我需要使用一些库,如llvm/ADT和llvm/IR,但在运行代码时出错

main.cpp:1:10: fatal error: 'llvm/ADT/APFloat.h' file not found
#include "llvm/ADT/APFloat.h"
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.

我似乎也没有像汇编程序这样的工具。这些东西在苹果的版本中不可用吗?我可以安装LLVM而不与苹果的版本冲突吗?

苹果的fork遗漏了LLVM主干中的大部分库、头和命令行工具。 我建议您从主干编译一个新的llvm副本

冲突取决于您如何配置所有内容。你可以:

将新副本安装到全局位置,$PATH配置负责选择要使用的版本。 作为单独的Xcode工具链安装。 以下是我一直在使用的构建脚本: cmake-G Ninja-DCMAKE\u BUILD\u TYPE=Release-DLLVM\u APPEND\u VC\u REV=on-DLLVM\u ENABLE\u EH=on-DLLVM\u ENABLE\u RTTI=on-DLLVM\u CREATE\u XCODE\u TOOLCHAIN=on-DCMAKE\u INSTALL\u PREFIX=~/Library/Developer/./LLVM 运行ninja install将安装到全局位置,否则运行ninja install xcode toolchain作为单独的工具链进行安装

在您的情况下,我建议安装到全局位置,以避免混淆CFLAGS/LDFLAGS/Header搜索路径的麻烦。然后在完成教程后手动删除安装

编辑:您可能还想查看官方的构建指南
对于您的用例,树内构建也是一种可行的选择,只要您熟悉write-cmake-configs,实际上,不需要自己构建LLVM。您可以在此处获取平台的预构建版本:

在您的情况下,可能是这样的:

cd /opt
wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-x86_64-apple-darwin.tar.xz
tar xvf clang+llvm-5.0.0-x86_64-apple-darwin.tar.xz
mv clang+llvm-5.0.0-x86_64-apple-darwin llvm-5.0.0
之后,您将拥有/opt/llvm-5.0.0下的所有内容,例如:

等等

另外,我使用/opt作为一个例子,请随意选择最适合您的任何其他目录

/opt/llvm-5.0.0/bin/clang
/opt/llvm-5.0.0/bin/llvm-config
/opt/llvm-5.0.0/lib/libc++.a