Swift-进阶01:Swift源码编译
编译环境
- MacOS Big Sur 11.0.1
- Xcode 12.2
- Python 2.x
- brew install cmake ninja
编译步骤
- 准备阶段
新建一个文件夹,命名为
swift-source
由于拉取资源过程中,需要访问外网,所以需要梯子(各位童鞋自行解决)
- 第一步:clone swift源码
这里编译的是 swift-5.3.1-Release
。可以自行在官网找到对应的 分支 ,需要注意的是:swift源码版本需要与Xcode版本匹配(官方编译文档有说明)
1 | git clone --branch swift-5.3.1-RELEASE https://github.com/apple/swift.git |
- 第二步:update-checkout
这步主要是 clone
编译 swift相关的库
,否则在编译时一定会失败,这步很关键!(编译过程会很长,建议休息时间编译)
1 | ./swift/utils/build-script -r --debug-swift-stdlib --lldb |
- 第三步:采用ninja编译
编译过程可以使用ninja,也可以使用Xcode,但是Xcode编译之后的支持性不是太好,所以这里采用ninja编译
1 | ./swift/utils/build-script -r --debug-swift-stdlib --lldb |
- 使用VSCode调试Swift
- 首先,在VSCode中安装插件
- 添加配置文件
launch.json
,并修改
需要注意的是 program
的路径需要与你编译的文件路径一致
1 | { |
- 点击Debug运行,断住
然后过掉断点
看到以下结果就是运行成功了
- 然后切换至终端,我们可以开始源码调试啦。
在终端中输入以下代码(也可以从swift文件拷贝)
源码中搜索 swift_allocObject
(这个在后面文章会讲解,仅作为调试的例子),加上断点
- 继续在终端输入
var t = CJLTeacher()
,回车
这样,我们就可以愉快的调试的Swift源码啦,✿✿ヽ(°▽°)ノ✿
- Post title:Swift-进阶01:Swift源码编译
- Post author:张建
- Create time:2023-04-24 18:37:10
- Post link:https://redefine.ohevan.com/2023/04/24/Swift底层原理/Swift-进阶01:Swift源码编译/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.