美文网首页
Swift环境搭建

Swift环境搭建

作者: 深圳_你要的昵称 | 来源:发表于2020-12-15 10:28 被阅读0次

    前言

    为了后续swift的学习需要,我们第一步首先是把环境搭建好,这样后面我们就能更方便的查看底层源码,跟进流程。
    目前我是在mac最新的系统搭建环境的👇

    一、准备工作

    1. 首先安装VSCode,下载链接👉 https://code.visualstudio.com/Download
      VSCode版本👇

    下载完成后点击安装,打开VSCode,安装插件👇

    1. 编译软件ninja的安装
      我们采用的是homebrew方式安装
    • 未安装homebrew
      则先安装homebrew官网地址,打开【终端】,输入指令👇

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    • 已安装homebrew
      • 安装cmake

      brew install cmake

      • 安装ninja

      brew install cmake ninja

    注意,安装homebrew时间可能有些长,请耐心等待!

    二、Swift源码包准备

    swift开源语言,所以我们可以在github上下载最新源码 swift官方地址

    2.1 下载源码

    新建文件夹swift-source,打开终端,进入该文件夹,git指令下载👇

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

    注意:请下载匹配Xcode版本的release源码版本。

    2.2 update-checkout

    swift-source目录下,执行如下指令👇

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

    注意:这一步非常重要。源码目录中千万不要含有中文
    因为update-checkout会clone编译swift相关库,不然后面编译swift源码时一定失败。

    2.3 编译

    同样也是输入指令👇

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

    注意:使用的是ninja编译,必须先安装好ninja
    编译耗时比较久,我自己编译大概耗时1.5h左右

    三、运行Swift源码项目

    1. 打开源码项目
      打开VSCode,菜单栏选择File —> Open…—>定位到文件夹【swift-source】,点击【打开】👇
    1. 再添加脚本配置json文件👇


    代码如下👇

        "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}"
            }
        ]
    
    1. 点击运行👇

    出现下面这张图,就代表运行成功👇

    四、断点调试

    4.1 调试前需要做的准备工作

    • 找到编译后的【LLDB】目录,将里面所有文件复制粘贴到【CodeLLDB】目录,如下图

    编译后的【LLDB】目录👇

    系统的【CodeLLDB】目录👇

    定位到你的系统文件夹目录,cmd + shift + >显示出隐藏文件夹,如下图👇

    • 单独拷贝lldb,并改库名👇

    4.2 开始调试

    1. 打断点
      源码中搜索swift_allocObject 如下图👇
    1. 然后切换到终端,输入示例代码👇
    1. 再输入调用代码,触发断点👇

    完美触发,👍

    总结

    本篇文章详细讲解了swift源码项目环境的搭建,后面我们进入swift底层源码学习,跟进底层源码流程所需。希望大家自己可以亲自尝试一下,哈哈!

    相关文章

      网友评论

          本文标题:Swift环境搭建

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