↑公式サイトから Windows版 Swiftインストーラswift-5.10.1-RELEASE-windows10.exeをダウンロードしてインストールしたが、コンパイルできなかった。
> swift .\hello.swift
<module-includes>:1:10: note: in file included from <module-includes>:1:
#include "AssertionReporting.h"
^
C:\Users\USERNAME\AppData\Local\Programs\Swift\Platforms\5.10.1\Windows.platform\Developer\SDKs\Windows.sdk\usr\lib\swift\shims/AssertionReporting.h:16:10: note: in file included from C:\Users\USERNAME\AppData\Local\Programs\Swift\Platforms\5.10.1\Windows.platform\Developer\SDKs\Windows.sdk\usr\lib\swift\shims/AssertionReporting.h:16:
#include "SwiftStdint.h"
^
C:\Users\USERNAME\AppData\Local\Programs\Swift\Platforms\5.10.1\Windows.platform\Developer\SDKs\Windows.sdk\usr\lib\swift\shims/SwiftStdint.h:28:10: error: 'stdint.h' file not found
#include <stdint.h>
^
<unknown>:0: error: could not build C module 'SwiftShims'
Swift 5.9.2、Swift 5.8.1 の旧バージョンをインストールしてみたが、同じ現象でした。
数年前に当時のSwiftをインストールしたときは、こんなことにはならず すんなりコンパイルできたのに。。。
どうやら、Visual Studio Communityをダウンロードして、MSVC等のデスクトップ開発環境のインストールが前提となったようだ。
公式のドキュメントに書いてありました。
You will need to install Visual Studio with the following components.
ですが、Windows11からWindows Package Managerを使ったインストール方法があり、こちらの方がずっと簡単にインストールできたので、ここに手順のみまとめておきます。
Windows Package Manager を使ったインストール方法
手順は3つ。
手順 1
設定 → システム → 開発者向け → 開発者モード → 「オン」にする
手順 2
次のコマンドで Visual Studio の必要なコンポーネントをインストールする。
> winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows11SDK.22000 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64"
Visual Studioのインストーラが起動し、必要なコンポーネントのダウンロードとインストールが自動的に走る。
自分のPCだと、30分ほどかかりました。
手順 3
次のコマンドで Swift(及びツールチェーン)をダウンロード&インストールする。
> winget install --id Swift.Toolchain -e
当然、最新バージョンがインストールされます。
Windows10 の場合のコマンド
Windows10 においても、wingetをインストールすれば、同様の手順で可能ですが、まったく同じコマンドではエラーとなったので、Windows10 の場合のコマンドを書いておきます。
> winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows10SDK.17763 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64" --source winget
> winget install --id Swift.Toolchain -e --source winget
確認
以上で、インストールできたので、実際に確認します。
> swift --version
Swift version 5.10.1 (swift-5.10.1-RELEASE)
Target: x86_64-unknown-windows-msvc
> swift hello.swift
<unknown>:0: error: could not load the swift standard library
> swiftc hello.swift
ライブラリ hello.lib とオブジェクト hello.exp を作成中
> .\hello.exe
Hello! Swift!
> mkdir MyCLI
> cd MyCLI
> swift package init --type executable
Creating executable package: MyCLI
Creating Package.swift
Creating .gitignore
Creating Sources/
Creating Sources\main.swift
> swift run MyCLI
Building for debugging...
[8/8] Linking .\.build\x86_64-unknown-windows-msvc\debug\MyCLI.exe
Build complete! (5.35s)
Hello, world!
Replも確認しておきます。
> swift repl
Welcome to Swift version 5.10.1 (swift-5.10.1-RELEASE).
Type :help for assistance.
1> print("hello")
2> :quit
公式手順通りにインストールできたのですが、何かおかしいです。
今後、原因究明して記事をアップデートします。
原因究明履歴
2024.6.22追記
swift -print-target-infoで出てきた以下の内容。
> swift -print-target-info
Swift version 5.10.1 (swift-5.10.1-RELEASE)
Target: x86_64-unknown-windows-msvc
C:\Users\USERNAME\AppData\Local\Programs\Swift\Toolchains\5.10.1+Asserts\usr\bin\swift-frontend.exe -frontend -print-target-info -target x86_64-unknown-windows-msvc
{
"compilerVersion": "Swift version 5.10.1 (swift-5.10.1-RELEASE)",
"target": {
"triple": "x86_64-unknown-windows-msvc",
"unversionedTriple": "x86_64-unknown-windows-msvc",
"moduleTriple": "x86_64-unknown-windows-msvc",
"compatibilityLibraries": [ ],
"librariesRequireRPath": false
},
"paths": {
"runtimeLibraryPaths": [
"C:\\Users\\USERNAME\\AppData\\Local\\Programs\\Swift\\Toolchains\\5.10.1+Asserts\\usr\\lib\\swift\\windows"
],
"runtimeLibraryImportPaths": [
"C:\\Users\\USERNAME\\AppData\\Local\\Programs\\Swift\\Toolchains\\5.10.1+Asserts\\usr\\lib\\swift\\windows",
"C:\\Users\\USERNAME\\AppData\\Local\\Programs\\Swift\\Toolchains\\5.10.1+Asserts\\usr\\lib\\swift\\windows\\x86_64"
],
"runtimeResourcePath": "C:\\Users\\USERNAME\\AppData\\Local\\Programs\\Swift\\Toolchains\\5.10.1+Asserts\\usr\\lib\\swift"
}
}
一つ上の階層のswiftまでは存在するが、↓このフォルダが存在しない。
C:\Users\USERNAME\AppData\Local\Programs\Swift\Toolchains\5.10.1+Asserts\usr\lib\swift\windows
これが関係しているかも?と考え、空のwindowsフォルダを作ってみたが、結果は変わらない。
error: could not load the swift standard library
せめて、そのライブラリ名が判明すれば何とかなるようにも思うが、未だ原因不明だ。
ちなみに、Macで同じコマンドを実行した結果は、以下の内容。
$ swift -print-target-info
Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
Target: arm64-apple-macosx14.0
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -print-target-info -target arm64-apple-macosx14.0
{
"compilerVersion": "Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)",
"target": {
"triple": "arm64-apple-macosx14.0",
"unversionedTriple": "arm64-apple-macosx",
"moduleTriple": "arm64-apple-macos",
"compatibilityLibraries": [ ],
"librariesRequireRPath": false
},
"paths": {
"runtimeLibraryPaths": [
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx",
"/usr/lib/swift"
],
"runtimeLibraryImportPaths": [
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx"
],
"runtimeResourcePath": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift"
}
}
$ ls /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx
Cxx.swiftmodule libswiftCompatibility51.a
CxxStdlib.swiftmodule libswiftCompatibility56.a
layouts-x86_64.yaml libswiftCompatibilityConcurrency.a
lib_InternalSwiftScan.dylib libswiftCompatibilityDynamicReplacements.a
libcxxshim.h libswiftCompatibilityPacks.a
libcxxshim.modulemap libswiftCxx.a
libcxxstdlibshim.h libswiftCxxStdlib.a
libswiftCompatibility50.a prebuilt-modules
Macがグローバルインストールに対し、Windows11ではユーザインストールになっている点が違う。インストール時にインストール先は聞かれなかった。影響は分からない。
2024.6.26追記
wingetでグローバルインストールを指定するオプションを見つけたので、そのオプションでインストールしてみた。
> winget install --scope machine --id Swift.Toolchain -e
その結果、swift -print-target-infoで出てくる内容も変化した。確かにパスがグローバルになった。
> swift -print-target-info
{
"compilerVersion": "Swift version 5.9.2 (swift-5.9.2-RELEASE)",
"target": {
"triple": "x86_64-unknown-windows-msvc",
"unversionedTriple": "x86_64-unknown-windows-msvc",
"moduleTriple": "x86_64-unknown-windows-msvc",
"compatibilityLibraries": [ ],
"librariesRequireRPath": false
},
"paths": {
"runtimeLibraryPaths": [
"C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift\\windows"
],
"runtimeLibraryImportPaths": [
"C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift\\windows",
"C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift\\windows\\x86_64"
],
"runtimeResourcePath": "C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift"
}
}
> ls "C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\lib\\swift\\windows"
Get-ChildItem: Cannot find path 'C:\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain\usr\lib\swift\windows' because it does not exist.
しかし、C:\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain\usr\lib\swift\windowsのパスが存在しないことは、変わらず同じ。
なぜか、バージョンがダウンした。
> swift --version
Swift version 5.9.2 (swift-5.9.2-RELEASE)
Target: x86_64-unknown-windows-msvc
しかし、swift hello.swiftの結果はエラーのまま。。。
> swift hello.swift
<unknown>:0: error: could not load the swift standard library
2025.10.30追記
最新版をインストールしたところ、問題なく動作しました。
-
環境
エディション Windows 11 Pro バージョン 25H2 インストール日 2025/10/10(金) OS ビルド 26200.6584 エクスペリエンス Windows 機能エクスペリエンス パック 1000.26100.234.0
-
インストール
> winget --version v1.12.350 > winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows11SDK.22000 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64" 見つかりました Visual Studio Community 2022 [Microsoft.VisualStudio.2022.Community] バージョン 17.14.18 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました > winget install --id Swift.Toolchain -e 見つかりました Swift [Swift.Toolchain] バージョン 6.2.0 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 このパッケージには次の依存関係が必要です: - パッケージ Git.Git Microsoft.VCRedist.2015+.x64 [>= 14.28.29913.0] Python.Python.3.9 (1/1) 見つかりました Python 3.9 [Python.Python.3.9] バージョン 3.9.13 このアプリケーションは所有者からライセンス供与されます。 Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。 ダウンロード中 https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe ██████████████████████████████ 27.8 MB / 27.8 MB インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました ダウンロード中 https://download.swift.org/swift-6.2-release/windows10/swift-6.2-RELEASE/swift-6.2-RELEASE-windows10.exe ██████████████████████████████ 851 MB / 851 MB インストーラーハッシュが正常に検証されました パッケージのインストールを開始しています... インストールが完了しました
-
コンパイル&実行
> cat .\hello.swift print("Hello, World!") > swift --version Swift version 6.2 (swift-6.2-RELEASE) Target: x86_64-unknown-windows-msvc Build config: +assertions > swift .\hello.swift Hello, World!
以上