美文网首页
Swift源码编译(5.3.1)

Swift源码编译(5.3.1)

作者: 移动端_小刚哥 | 来源:发表于2020-12-13 10:48 被阅读0次

一、编译环境

  • macOS 11.0.1
  • Xcode version 12.2
  • Python 2.x
  • brew install make ninja

二、编译步骤

1. clone swift源码
git clone --branch swift-5.3.1-RELEASE https://github.com/apple/swift.git

如果想要编译其它版本的可以从分支中查找

2. 进入swift-source目录运行update-checkout
./swift/utils/update-checkout --tag swift-5.3.1-RELEASE --clone

这一步会下载Swift相关的库

3. 编译Swift

进入swift-source目录执行

./swift/utils/build-script -r --debug-swift-stdlib --lldb

这里推荐使用ninja来编译,使用Xcode编译我还没尝试

4. 使用vscode来调试swift源码

首先我们需要安装vscode插件CodeLLDB
接下来配置JSON文件


配置json.png
{
     "version": "0.2.0",
     "configurations": [
         {
             "type": "lldb",
             "request": "launch",
             "name": "Debug",
             "program": "${workspaceFolder}/build/Ninja-RelWithDebInfoAssert+stdlib-DebugAssert/swift-macosx-x86_64/bin/swift",
             "args": [],
             "cwd": "${workspaceFolder}"
} ]
}

run起来之后过掉第一个断点


image.png image.png image.png image.png

如果区域3不显示,先找到vscode的安装目录


image.png

显示隐藏文件的快捷键 command+shift+.
然后找到LLDB目录拷贝以下文件到vscode安装目录对应位置


image.png

同时修改lib文件夹中的dylib文件


image.png

相关文章

  • Swift源码编译(5.3.1)

    一、编译环境 macOS 11.0.1 Xcode version 12.2 Python 2.x brew in...

  • Swift-5.3.1 源码编译

    对于一门语言的探索一定是从探索API源码开始,而探索API源码除了一行一行的读代码,还可以直接进行编译调试,最大程...

  • Android4.4.2 源码编译-iMX6Q/D核心板-非设备

    5.3.1Android源码整体编译-基于迅为-IMX6开发板系列 本节介绍如何将 Android 源码如何整体编...

  • Swift 进阶之路 文章汇总

    Swift-进阶 01:Swift源码编译[https://www.jianshu.com/p/284406133...

  • Swift 进阶汇总

    Swift-进阶 01:Swift源码编译[https://www.jianshu.com/writer#/not...

  • swift编译浅析

    1. 编译器介绍 swift的编译器是swiftc 1.1 编译历程 SwiftCode源码->通过词法分析、语法...

  • Swift源码编译

    准备工作 磁盘空间60G 编译环境 Xcode 12.2(12B45b) Visual studio Code( ...

  • Swift源码编译

    编译环境 xcode :Mac系统自带 Python :Mac系统自带 cmake:通过brew list命令查看...

  • Swift源码编译

    编译环境 macOS Big Sur 11.0.1 Xcode 12.2 Python 2.x brew inst...

  • Swift源码编译

    本文转载自逻辑iOS技术号[https://mp.weixin.qq.com/s/WjY4z4I_FFQlB1gE...

网友评论

      本文标题:Swift源码编译(5.3.1)

      本文链接:https://www.haomeiwen.com/subject/epmugktx.html