美思 [技術雜談] 在 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 程式其實不是那麼方便,或許還要一陣子才能達到真正能用的地步。

關於作者

身為資訊領域碩士,美思認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

美思喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,美思將所學寫成文章,放在這個網站上和大家分享。