1、获取源码
git clone --depth 1 https://github.com/llvm/llvm-project.git
2、配置,构建LLVM和Clang
新版mackOS默认的shell是zsh,所以在终端执行以下命令:
echo 'export OSX_COMMANDLINE_SDKROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"' >> ~/.zshrc
执行上面命令之后可以打开zshrc文件,看一下刚刚输入的地址是否正确
open ~/.zshrc
然后执行:
source ~/.zshrc
⚠️ 注意:在执行第二步的时候要查看一下/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk是否存在?
如果不存在请及时安装:
xcode-select --install
否则影响接下来的配置。
3、使用brew安装cmake
brew install cmake
如果提示已安装,可以更新也可以不更新
开始构建
1、cd llvm-project :进入llvm-project文件夹
2、mkdir build :创建build文件夹
3、cd build :进入build文件夹
4、构建Xcode项目:
cmake -G Xcode -j 6 -DLLVM_ENABLE_PROJECTS='libcxx;libc++;clang;lldb' -DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DLLDB_TEST_COMPILER=clang++ -DCMAKE_OSX_SYSROOT=$OSX_COMMANDLINE_SDKROOT ../llvm
一些常见的构建系统生成器:
Ninja:大多数llvm开发人员都使用NinjaUnix Makefiles:用于生成与make兼容的并行makefileVisual Studio:用于生成Visual Studio项目和解决方案Xcode:用于生成Xcode项目
这里我们选用Xcode
-j 参数指定使用的cpu核心数量。例如上面的指令中使用的是6个。根据自己电脑情况指定。
这个过程耗时会比较久一点
Xcode 相关配置
1、进入build目录下,打开LLVM.xcodeproj
2、进入Xcode会有弹框提示,选择Manually Manage Schemes
注意 ⚠️
Automatically Create Schemes,否则会引入一些不必要的scheme,拖累Xcode的速度。
原则:使用哪个scheme,就引入哪个scheme。
3、创建scheme,Target选择lldb。
⚠️ 第一次运行的时候,需要我们进行编译,以重新生成调试符号,之后在运行可以Run Without Building;这就意味着,当你的代码没有改变的时候,不需要重新编译,直接运行现有的可执行文件即可。
⚠️ 当使用别人编译过的项目的时候,只需要执行下面的指令:
cmake -G Xcode -j 6 -DLLVM_ENABLE_PROJECTS='libcxx;libc++;clang;lldb' -DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DLLDB_TEST_COMPILER=clang++ -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" ../llvm
立马回报错:
此时将需要在llvm-project/build目录中的CMakeCache.txt删除,然后重新执行上述命令即可。