Swift源码编译,小坑比较多,历时2周(乐色)。
一、编译环境
官方文档:https://github.com/apple/swift/blob/main/docs/HowToGuides/GettingStarted.md#system-requirements
Xcode版本:Version 13.4.1 (13F100),macOS版本:12.3.1
安装VSCode
安装Homebrew
安装cmake:brew install cmake
安装njnia:brew install njnia:brew
建议:下载源码和编译需要50G~60G,可选择在移动硬盘上(坑1:电脑内存不够用卡死)
二、下载源码
2.0、创建文件夹
mkdir swift-build
cd swift-build
2.1、查看当前swift版本
swift --version 当前版本是5.6.1
2.2、下载与自己xcode的swift release源码匹配版本
git clone --branch swift-5.6.1-RELEASE https://github.com/apple/swift.git
2.3、下载编译过程中需要的其他分支文件
./swift/utils/update-checkout --tag swift-5.6.1-RELEASE --clone
坑2:提示xcode不匹配
env SKIP_XCODE_VERSION_CHECK=1 ./swift/utils/update-checkout --tag swift-5.6.1-RELEASE --clone
坑3:没有找到python2.7
查看本地python版本:python --version (本地python 3.7)
去官网下载python2.7:https://www.python.org/downloads/release/python-2718/
下载安装完以后,vim ~./bash_profile ,写入alias python='/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'
生效:source ~./bash_profile
再次查看python版本,已经切换到2.7
三、编译
./swift/utils/build-script -r --debug-swift-stdlib --lldb
提示:这步需要很长的时间
坑4:ImportError: No module named six
python缺少文件,去官网下载:https://pypi.org/project/six/#files
下载完后命令行,cd进入该根目录
执行 python setup.py install,此时安装six完成
再次执行编译命令
四:配置VSCode调试swift
4.1、用VSCode打开swift-build文件
4.2、安装codelldb插件
4.3、配置json文件
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
//此处路径为swift编译文件的路径
"program": "${workspaceFolder}/build/Ninja-RelWithDebInfoAssert+stdlib-DebugAssert/swift-macosx-x86_64/bin/swift",
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
4.4、开始调试swift
过掉断点继续执行
网友评论