如何在macOS中编译LLVM

本文介绍了在macOS操作系统中编译LLVM的步骤,包括在App Store安装Xcode(可选命令行工具)以及使用homebrew安装必要的依赖库。

第一步,在App Store中搜索并安装Xcode。如果不想安装整个Xcode,可以在terminal中运行以下命令来只安装命令行工具

xcode-select --install

第二步,安装LLVM的依赖库。首先运行以下命令(以官网为准)来安装homebrew。.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成之后使用homebrew来安装LLVM的依赖库

brew install cmake
brew install ninja
brew install zlib

第三步,编译LLVM。首先使用以下指令下载源代码,

git clone https://github.com/llvm/llvm-project.git

然后照着官网指令安装。以下命令中最重要的是DEFAULT_SYSROOT参数的设置,否则编译好的Clang可执行文件会因为找不到库文件报错。这个参数会把sysroot指向第一步中安装的开发

<think>我们已经掌握用户需求:编译llvm-project中的example项目。根据引用的信息,可以整理出关键步骤。引用[2]和[3]提供了编译的实践信息,引用[4]则提供了安装后的环境配置建议。引用[5]提到绑定生成,但与编译example无关。用户明确要求编译example项目,因此重点参考[2][3][4]。步骤分析:1.准备编译环境:确保已经获取llvm-project源码(引用[1]提供项目地址,但用户已有源码,如引用[2]所示)。2.配置编译选项:引用[2]显示commitid,表明用户可能已检出特定版本。3.构建项目:引用[3]展示了Windows下使用msbuild编译,但用户可能在不同平台。4.编译example:llvm-project中的example通常需要单独构建。具体步骤(以Linux/macOS为例,兼顾Windows):(1)创建构建目录并进入:```bashmkdirbuild&&cdbuild```(2)运行CMake配置(需启用examples):```bashcmake-DLLVM_ENABLE_PROJECTS="clang"-DLLVM_BUILD_EXAMPLES=ON../llvm```注意:`LLVM_ENABLE_PROJECTS`根据所需工具链设置(如clang);`../llvm`为llvm源码路径(若在llvm-project下,则为`../llvm`;若整个项目检出,则为`../../llvm`,需调整)。(3)编译:-Linux/macOS:`make`(可指定目标,如`make-j4`)-Windows:使用CMake生成sln后,打开LLVM.sln编译(引用[3]使用msbuild),或通过CMake构建。(4)定位示例:编译后,example会在build/bin目录下(如`build/bin/llvm-examples`或具体示例程序)。若编译特定example(如toy编译器,引用[3]提到):-Toy示例位于`llvm/examples/Kaleidoscope`,需确保在CMake配置时启用。问题解决:-引用[3]提到JSONTest.cpp报错,若遇到类似错误,检查依赖环境。-环境变量:引用[4][5]提到设置环境变量(如LLVM_CONFIG),但编译example主要依赖构建配置。综上,核心是配置CMake时打开`LLVM_BUILD_EXAMPLES=ON`选项,并正确构建。生成相关问题:1.如何指定编译LLVM中的特定example(例如Kaleidoscope)?2.编译LLVMexamples时遇到编译错误如何解决?3.如何在Windows平台使用CMake和VisualStudio编译LLVMexamples?</think> ### 如何编译 LLVM-Project 中的示例项目 编译 LLVM-Project 中的示例项目需要以下步骤,根据你的操作系统可能略有不同: #### 🛠 1. 准备工作 - 确保已完整克隆 [llvm-project-deluge](https://gitcode.com/gh_mirrors/ll/llvm-project-deluge) 仓库: ```bash git clone https://gitcode.com/gh_mirrors/ll/llvm-project-deluge.git ``` - 确认 commit 版本(建议使用稳定版本),如引用[2]所示: ```bash cd llvm-project-deluge git checkout 5b78868661f42a70fa3006b1db41f78a6178d596 ``` #### ⚙ 2. 配置 CMake 启用 examples 编译选项: ```bash mkdir build && cd build cmake -DLLVM_BUILD_EXAMPLES=ON ../llvm ``` > 关键参数:`-DLLVM_BUILD_EXAMPLES=ON` 会激活所有示例项目[^1] #### 🚀 3. 编译特定示例 以 **Kaleidoscope 编译器示例**(位于`llvm/examples/Kaleidoscope`)为例: ```bash cmake --build . --target Kaleidoscope ``` 编译成功后在 `build/bin/` 目录生成可执行文件 #### 💻 Windows 特别说明(引用[3]) ```cmd set path=%path%;<path_to_build_tools> cd d:\llvm-project\build msbuild LLVM.sln /t:Kaleidoscope ``` 若遇到类似 JSONTest.cpp 的编译错误: - 检查环境变量包含 CMake/Git/MSBuild 路径 - 确保安装 VS C++ 桌面开发组件 #### ✅ 验证安装(引用[4]) 编译完成后检查: ```bash ./bin/llvm-config --version # 输出类似: 15.0.0git ./bin/clang -v # 验证关联工具链 ``` #### 🛠 问题排查 1. **缺少依赖**:安装 zlib/libxml2 等开发包 2. **Python 绑定问题**(引用[5]): ```bash export LLVM_CONFIG=./build/bin/llvm-config pip install llvmlite ``` 3. 内存不足:使用 `-jN` 限制并发编译线程数 #### 🌰 示例:运行 Toy 编译器 ```bash cd build ./bin/toy -use-mcjit test.toy ``` --- ### 🔍 相关问题 1. 如何仅编译特定 LLVM 模块(如 Clang 或 LLD)而不是全部项目? 2. Windows 平台编译 LLVM 遇到 LNK1181 链接错误应如何解决?[^3] 3. 如何通过 LLVM Python 绑定直接调用优化器模块?[^5] 4. 编译后如何添加自定义示例项目到 LLVM 构建系统? 5. LLVM 交叉编译工具链的制作流程是什么? [^1]: 项目目录结构及介绍 [^2]: 源码编译 commit id 确认 [^3]: Windows 编译及报错解决 [^4]: 环境变量配置验证 [^5]: Python 绑定与环境变量设置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值