Swift底层源码编译步骤

2020-12-08  本文已影响0人  Alex1989

Swift底层源码编译步骤

准备工作

创建母文件夹

mkdir swift-source
cd swift-source

第一步 clone swift 源码

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

这里推荐使用最新的分支以对应新版的Xcode。别的分支我也下载过,update-checkout会出各种问题

第二步 update-checkout

执行此指令确保在swift-source目录下(重点)

./swift/utils/update-checkout --tag swift-5.3.1-RELEASE --clone

这一步会clone 编译Swift相关的库

第三步 编译(推荐使用ninja直接在终端编译)(编译了1小时)

在swift-source目录下执行以下指令:

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

编译完成后:如果的你的目录有可执行文件swift就大功告成了


image

第四步 使用VSCode 调试 Swift

最后说说我再编译过程中遇到的坑以及解决方案吧

修改“/Library/Developer/CommandLineTools/usr/include/c++/v1/cmath”中的#include <math.h>为#include "math.h"。
截图所示:


image

用IDE打开:


image

另一种解决方案

该信息的报错应该是和CommandLineTools有关,那就直接删除
1.在终端中执行以下代码:

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select -s /Applications/Xcode.app

2.从新执行编译即可

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

使用VSCode无法展示本地变量的问题

-w1173

1.将swift-source下编译好的build目录中对应路径bin文件全部拷贝


-w827

2.将swift源码中的文件lldb 赋值到 vscode下的lib文件 覆盖掉原来的liblldb.dylib,完成替换
3.退出vscode,从新打开并debug,即可看到本地变量。

我们看看效果:


-w845

这就是Swift源码完整的编译流程,有问题可以给我留言,探索过程是蛮有意思的。

最后强烈建议使用科学上网,科学上网,科学上网。

上一篇 下一篇

猜你喜欢

热点阅读