美文网首页
Swift源码编译

Swift源码编译

作者: 方小花c | 来源:发表于2022-08-09 11:07 被阅读0次

    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

    过掉断点继续执行

    相关文章

      网友评论

          本文标题:Swift源码编译

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