构建LLVM的两种方式
方式一
获取源代码
git clone --depth 1 https://github.com/llvm/llvm-project.git
方式二
压缩包链接:https://pan.baidu.com/s/1ByGLFRrkfhzVfem4ECC1uA 密码:8sdj
配置和构建LLVM和Clang
新版 macOS 10.15系统以上默认 Shell 是 zsh,10.15系统以下使用bash, 所以首先进入终端执行:
echo 'export OSX_COMMANDLINE_SDKROOT="/Library/Developer/CommandLi neTools/SDKs/MacOSX.sdk"' >> ~/.zshrc
然后执行:
//10.15系统以上
source ~/.zshrc
//10.15系统以下
source ~/.bash
使用brew 安装 cmake:
brew install cmake
源码和cmake安装完后,开始构建:
- cd llvm-project
- mkdir build
- cd build
因为我们平时使用Xcode比较熟悉 所以这里用Xcode进行编译:
//cmake -G <generator> [options] ../llvm ; -j 参数指定使⽤的CPU核⼼数量 例如我当前是 2。根据自己电脑情况指定
cmake -G Xcode -j 2 -DLLVM_ENABLE_PROJECTS='libcxx;libc++;clang;lldb' -DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DLLDB_TEST_COMPILER=clang++ -DCMAKE_OSX_SYSROOT=$OSX_COMMANDLINE_SDKROOT ../llvm
此时 build 目录下大约是50M内容
配置Xcode
-
首先进入build 目录下,打开LLVM.xcodeproj :
注意:不要选择Automatically Create Schemes。选择Manually Manage Schemes
注意:不要选择Automatically Create Schemes。选择Manually Manage Schemes
注意:不要选择Automatically Create Schemes。选择Manually Manage Schemes
否则,会引入一些不必要的scheme,拖累Xcode速度。
原则:使用哪个scheme,就引入哪一个。
-
然后,点击左下角加号,在Target中选中lldb可执行文件:
5.选择Build & Run:注意:每次运行时要通过Run Without Building运行。这就意味着,当你的代码没有改变的时候,不需要重新编译,直接运行现有可执行文件即可。
报错问题及解决
问题一:
cd /Library/Developer/CommandLineTools/SDKs
查看是否有10.15
然后进入llvm-project/build目录,删除CMakeCache.txt文件
执行以下代码:
cmake -G Xcode -DLLVM_ENABLE_PROJECTS='libcxx;libc++;clang;lldb' -DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DLLDB_TEST_COMPILER=clang++ -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk" ../llvm
执行完成后,重复Xcode配置步骤
问题二:
进入llvm-project/build目录,删除CMakeCache.txt文件。执行xcode-select -r
问题三:
如果之前删掉了 CommandLineTools、那么在该 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk 路径将不存在、在编译的时候会有日志信息体现。
解决方案一:xcode-select --install
解决方案二: 或去苹果官网下载对应自己电脑的Xcode版本的 CommandLineTools 并安装。
问题四:
删除CMakeLists.txt文件,重新运行,没用的话,执行xcode-select --reset