首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apple与LLVM的区别

Apple与LLVM的区别
EN

Stack Overflow用户
提问于 2017-11-24 20:20:53
回答 2查看 1.3K关注 0票数 2

我已经安装了Apple的命令行工具9.1版本,并且正在编写LLVM教程。我需要使用一些库,如llvm/ADT和llvm/IR,但是在运行代码时会出现错误。

代码语言:javascript
运行
复制
main.cpp:1:10: fatal error: 'llvm/ADT/APFloat.h' file not found
#include "llvm/ADT/APFloat.h"
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.

我似乎也没有像汇编程序这样的工具。这些东西是不是不能用苹果的版本呢?我能在不与苹果版本冲突的情况下安装LLVM吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-25 00:48:07

苹果的叉子错过了llvm主干中的大部分库、头和命令行工具。

我建议您从主干编译一个新的llvm副本。

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

  • 将您的新副本安装到全局位置,您的$PATH配置负责选择使用哪个版本。
  • 安装为单独的Xcode工具链。

下面是我一直在使用的构建脚本:运行cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DLLVM_APPEND_VC_REV=on -DLLVM_ENABLE_EH=on -DLLVM_ENABLE_RTTI=on -DLLVM_CREATE_XCODE_TOOLCHAIN=on -DCMAKE_INSTALL_PREFIX=~/Library/Developer/ ../LLVMninja install将安装到全局位置,否则运行ninja install-xcode-toolchain即可作为单独的工具链安装

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

编辑:您可能还想查看正式的构建指南https://llvm.org/docs/CMake.html

对于您的用例,树内构建也是一个可行的选择(如果您熟悉写cmake信任)

票数 3
EN

Stack Overflow用户

发布于 2017-11-25 15:03:55

实际上,没有必要自己构建LLVM。您可以在这里获得您的平台的预构建版本:http://releases.llvm.org

在你的例子中,它应该是这样的:

代码语言:javascript
运行
复制
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下的所有内容,例如:

代码语言:javascript
运行
复制
/opt/llvm-5.0.0/bin/clang
/opt/llvm-5.0.0/bin/llvm-config
/opt/llvm-5.0.0/lib/libc++.a

等。

我使用/opt作为一个例子,您可以随意选择其他最适合您的目录。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47479552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档