1、iOS 强化- LLVM编译(lldb源码调试)

1、获取源码

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

2、配置,构建LLVM和Clang

新版mackOS默认的shellzsh,所以在终端执行以下命令:

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开发人员都使用Ninja
  • Unix Makefiles:用于生成与make兼容的并行makefile
  • Visual 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、创建schemeTarget选择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删除,然后重新执行上述命令即可。

你可能感兴趣的:(1、iOS 强化- LLVM编译(lldb源码调试))