日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目编译失败_Swift源码编译让底层更清晰

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目编译失败_Swift源码编译让底层更清晰 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WWDC2020 大會將通過 Apple Developer App 和 Apple Developer網站免費向所有開發者開放! 從去年火遍全網的 SwiftUI 以及 Combine 到今年全新的“Swift Student Challenge” 無時不刻都在透露 Swift 時代已經來臨

本人也是Swift一個深度著迷的開發者,并且有點喜歡玩底層!非常感謝蘋果爸爸 Swift 高度開源, 但是日常開發過程中總感覺還是缺了一點什么...

其實說白了要是能夠我不能懂的底層,直接跑進源碼看看流程,分析一下原理!這就完美了... 所以我毫不猶豫:Swift源碼編譯走起

著急嘗鮮的小伙伴,請點擊我的快速通道:Swift源碼編譯

一、Swift編譯準備

  • apple / swift 官網地址 這里clone我們需要編譯的源碼
  • 版本準備:macOS 10.15.3 ?Xcode 11.5 (這是我當前的版本,應該是只需要 Xcode 11.2)
  • 這里最新的源碼編譯時需要 Xcode 12.0 ?我本人現在沒有升級,況且還只是beta 就不去玩,畢竟還要一段時間!以防不穩定
  • 由于編譯速度還是有點慢,建議電腦性能稍微高一點,具體你們自己定
  • 網絡建議:小樓梯 (不解釋),穩定網線
  • 最重要的就是:keep patient (肯定會有各種問題報錯,還是耗時非常嚴重:1-2h 這是正常現象)

二、開始編譯吧

首先編譯的手法有很多:Xcode - Ninja - Linux - VScode !各有各的方便,這里我們不去說其他的先來一個大家非常熟悉的:Xcode

1:準備編譯目錄

創建一個你喜歡的文件目錄

mkdir swift-sourcecd swift-source

2:clone 源碼

這里用的是 swift-5.2.4-RELEASE 這個穩定版本,對于現在開發來說夠了!未來更新再說,請記住一定要根據我這個版本,因為版本不一樣會和你Xcode不兼容,后面報錯,我可就不負責了:哈哈哈哈

git clone --branch swift-5.2.4-RELEASEhttps://github.com/apple/swift.git
  • 這里如果你有小樓梯,應該很快的

3:clone 補充核驗

  • 跳到swift文件下面 utils/update-checkout
  • clone 出后面編譯需要的文件
  • 這很重要,因為update-checkout 將檢出Swift源目錄旁邊的存儲庫
  • 這一步也是比較耗時的,這個時候你可以:Have a cup of coffee
./swift/utils/update-checkout --tag swift-5.2.4-RELEASE --clone

4:buid Swift (waiting)

  • 利用swift源碼中的腳本編譯
sudo ./swift/utils/build-script -x -R --debug-swift
  • 蘋果github上面也指出了幾個編譯實例,大家也可以自己去玩!
  • 如果你編譯還不是很熟練,也想避免踩坑(畢竟這一踩就要1-2h) 跟我給你的步驟走,安全又可靠!
utils/build-script --release-debuginfo --debug-swift # Swift frontend built in debugutils/build-script --release-debuginfo --debug-swift-stdlib # Standard library built in debugutils/build-script --release-debuginfo --debug-swift --force-optimized-typechecker # Swift frontend sans type checker built in debug

當然也會有一些玩得好的,想要更多參數命令,推薦這個腳本查閱./swift/utils/build-script -h 由于篇幅原因不展開,大家可以自行去玩!比如說編譯標準庫和編譯LLDB以及全部 等等。。。

構建完上一步,就會進入非常漫長難受的等待過程!如果覺得無聊可以喝杯茶,最好是在一個無聊的午后編譯哈~

三、調試Swift源碼

要在 Xcode 中打開 Swift 項目,請打開/swift-source/build/Xcode-ReleaseAssert+swift-DebugAssert/swift-macosx-x86_64/Swift.xcodeproj。它將為所有可用目標自動創建很多方案。常見的調試流程將涉及:

  • 選擇 swift scheme。
  • 調出 scheme 編輯器(??<)。
  • 選擇 Arguments 選項卡,然后單擊 +。
  • 添加命令行選項。
  • 關閉scheme 編輯器。
  • 編譯并運行。

另一個選擇是將方案更改為 Wait for executable to be launched,然后在終端中運行構建產品。

到目前為止,基本操作就完畢了,大家可以自由自在的暢玩在Swift的海洋,注意發量 ~ 哈哈哈~

四、構建失敗原因分析

  • clone 失敗大概率就是網絡問題

  • 確保使用正確版本的 Xcode。

  • 如果您已更改 Xcode 版本,但仍然遇到與Xcode版本有關的錯誤,請嘗試將傳遞 --clean 給 build-script。

  • 當發布新版本的 Xcode 時,您可以通過傳遞 --reconfigure 選項來更新構建,而無需重新編譯整個項目。

  • 確保所有存儲庫都是上述 update-checkout 命令中最新的

感謝

Swift源碼編譯

  • https://github.com/apple/swift
  • https://lldb.llvm.org/index.html
  • https://forums.swift.org/t/debug-local-stack-frame-variables-fails-failed-to-get-module-builtin-from-ast-context/19171/12
  • https://github.com/apple/swift/blob/master/docs/DebuggingTheCompiler.rst#types-loghttps://github.com/apple/swift/blob/master/docs/DebuggingTheCompiler.rst#types-log
  • https://www.polidea.com/blog/how-to-build-swift-compiler-based-tool-the-step-by-step-guide/ https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md

OK 這篇文章就先寫到這里,大家可以先行去下載嘗鮮,如果覺得還可以還請不要吝嗇你的 在看和轉發

總結

以上是生活随笔為你收集整理的项目编译失败_Swift源码编译让底层更清晰的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人精品视频ⅴa片软件竹菊 | 国产ts在线视频 | 亚洲精品乱码久久久久久自慰 | 国产黄色一级网站 | 国产一级片免费在线观看 | 国产欧美日韩专区发布 | 国产亚洲精品成人av在线 | 伊人网综合网 | 精品区| 亚洲视频在线视频 | 午夜视频在线观看一区 | 国产视频在线观看一区 | 国产三级三级三级 | 蜜桃av噜噜一区二区三区小说 | 国产一区二区av在线 | 成人午夜精品一区二区 | 欧美精品在欧美一区二区少妇 | 国产亚洲av综合人人澡精品 | 一级影片在线观看 | 午夜插插插 | 飘花影院伦理片 | 欧美一区二区三区大屁股撅起来 | 99网站| 中文字幕在线视频播放 | 精品国产鲁一鲁一区二区张丽 | 久久国产精品亚洲 | 国产日韩欧美中文字幕 | 日韩精品一区二区三区四区五区 | 成年人网站在线免费观看 | 亚洲日本精品 | a在线观看免费 | 18视频在线观看网站 | 国产精品网站在线观看 | 图片区小说区视频区 | 日韩精品少妇 | 19韩国主播青草vip | 一卡二卡在线视频 | 啪啪自拍视频 | 天堂网www.| 国产日产欧洲无码视频 | 夜夜av| 精品免费久久久 | 长河落日电视连续剧免费观看01 | 色视频在线免费观看 | 中文字幕一区二区三区人妻 | 狠狠干一区 | 337p日本欧洲亚洲鲁鲁 | 欧美激情一区二区三区蜜桃视频 | 亚洲欧美日韩成人在线 | 亚洲黄色录像片 | 一区二区三区日韩电影 | wwwxxx日韩| 一本色道久久综合亚洲精品 | 中文字幕乱码一区 | 中文字幕欧美专区 | 日韩有码在线播放 | 99热最新网址 | 国产不卡一二三 | www.成人免费视频 | 18岁成年人网站 | 自拍偷拍亚洲一区 | 香蕉影院在线 | 亚洲综合五月天婷婷丁香 | 国产又粗又大又爽 | 日韩经典一区二区三区 | www.69pao.com | 羞羞答答av| 午夜精品美女久久久久av福利 | 亚洲欧洲成人 | 自拍偷拍中文字幕 | 精品一区二区三区视频日产 | 在线观看污污网站 | 美女野外找人搭讪啪啪 | 美女赤身免费网站 | 精品成人无码久久久久久 | 久久精品视频一区二区 | 中文字幕日本一区 | 热久久久久久久 | 91日韩在线 | 亚洲三级色| 午夜精品久久久久久久久久久 | 日日淫| 久草青青视频 | 欧美一区二区三区婷婷月色 | 亚洲19p| 亚洲一区播放 | av色站 | 在线观看成人一区 | 久久精品视频偷拍 | 天天色天天干天天色 | 欧美一区影院 | 国产精品免费一区二区区 | 波多野结衣一区二区三区高清av | 日本裸体网站 | 欧美色老头| 精品久久无码中文字幕 | 久久久久亚洲av无码a片 | 欧美一级做 | jizzjizz日本人 |