位元詩人 [技術雜談] 在 Windows 上編譯及執行 Swift 程式

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

Swift 長期定位為蘋果平台專用語言,但現在也可以在 Windows 和一些 GNU/Linux 發行版上使用了。本文介紹在 Windows 上編譯及執行 Swift 程式的方式。

系統需求

  • Windows 10
  • Visual C++ v14.25 以上
  • Windows Universal C Runtime
  • Windows 10 SDK

本文所列的開發工具皆為 Visual Studio 2019 的一部分。如果不會用到 Visual Studio 的 IDE,可以只裝 Build Tools for Visual Studio 2019。本文也是使用該 Build Tools 來建置 Swift 開發環境。

安裝所需的工作負載 (Workload)

下載該 Build Tools 的安裝程式後,點擊安裝。第一次安裝 Visual Studio 系列軟體時會先安裝 Visual Studio Installer,這是用來管理 Visual Studio 的軟體。然後,選擇以下工作負載:

  • C++ 建置工具
  • 通用 Windows 平台建置工具

其他的工作負載和 Swift 無關,請視需求自行安裝。

安裝 Swift

到 Swift 的官網下載 Windows 10 版本的安裝程式

第一次啟動 Swift 安裝程式時會被系統擋掉,不要擔心,選擇「仍要執行」,然後就無腦按下一步即可。

必要的動作

裝好後,還要做一些必要的動作才能使用 Swift。對於推廣程式語言來說,這樣的動作實在不夠親民。

用系統管理者權限開啟 x64 Native Tools Commnad Prompt for VS 2019 (按右鍵),依序執行以下四行指令:

copy %SDKROOT%\usr\share\ucrt.modulemap "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt\module.modulemap"
copy %SDKROOT%\usr\share\visualc.modulemap "%VCToolsInstallDir%\include\module.modulemap"
copy %SDKROOT%\usr\share\visualc.apinotes "%VCToolsInstallDir%\include\visualc.apinotes"
copy %SDKROOT%\usr\share\winsdk.modulemap "%UniversalCRTSdkDir%\Include\%UCRTVersion%\um\module.modulemap"

Windows 10 的命令提示字元視窗支援複製貼上,所以不需手動慢慢輸入。

C:\Library\Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk\usr\lib\swift\windows 內的 *.lib 拷貝到 C:\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain\usr\lib\swift\windows\x86_64

編譯第一個 Swift 程式

寫一個簡單的 Swift 程式來測試開發環境:

print("Hello World")

編譯後執行該程式:

> swiftc -o hello.exe hello.swift
> .\hello.exe
Hello World

目前 swift 指令暫時無法使用,希望 Swift 官方團隊能儘早修復這個問題。

目前碰到的問題

以筆者自身的測試來說,目前 swift 指令在 Windows 上是無法使用的,連帶 swift 的子指令 (subcommand) 也無法使用。由此可知,現階段在 Windows 上跑 Swift 程式其實不是那麼方便,或許還要一陣子才能達到真正能用的地步。

關於作者

位元詩人 (ByteBard) 是資訊領域碩士,喜歡用開源技術來解決各式各樣的問題。這類技術跨平台、重用性高、技術生命長。

除了開源技術以外,位元詩人喜歡日本料理和黑咖啡,會一些日文,有時會自助旅行。

近期在學習韓文,並將語言學習的心得轉化為開源專案,回饋社群。

這裡是位元詩人的 GitHub 個人頁