これまで、WindowsでCrystalを動かすにはWSL環境に落とし込んだり仮想マシンを立ち上げる必要がありましたが、ついにWindowsのPreview版が出ました。
installation
CrystalのインストールにはScoopeが必要なので、先に準備を行います。
公式のインストールガイドに従い、インストールをします。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
次にCrystalのインストールを公式のインストールガイドに従い行います。
scoop bucket add crystal-preview https://github.com/neatorobito/scoop-crystal
scoop install crystal
Hello Crystal!
プロジェクトを作成してみます。
PS F:\dev> crystal init app hello-cr
create F:\dev\hello-cr\.gitignore
create F:\dev\hello-cr\.editorconfig
create F:\dev\hello-cr\LICENSE
create F:\dev\hello-cr\README.md
create F:\dev\hello-cr\shard.yml
create F:\dev\hello-cr\src/hello-cr.cr
create F:\dev\hello-cr\spec/spec_helper.cr
create F:\dev\hello-cr\spec/hello-cr_spec.cr
Initialized empty Git repository in F:/dev/hello-cr/.git/
PS F:\dev>
\src\hello-cr.cr
が作成されるので、中身を少しだけ触ります。
hello-cr.cr
# TODO: Write documentation for `Hello::Cr`
module Hello::Cr
VERSION = "0.1.0"
# TODO: Put your code here
puts "Hello Crystal!"
end
hello-cr.cr
の階層まで移動し実行してみます。
PS F:\dev> cd .\hello-cr\src\
PS F:\dev\hello-cr\src> crystal run .\hello-cr.cr
Error executing process:
(中略…)
/ENTRY:wmainCRTStartup iconv.lib advapi32.lib Kernel32.lib shell32.lib ole32.lib WS2_32.lib legacy_stdio_definitions.lib DbgHelp.lib libcmt.lib': 指定されたファイルが見つかりません。 (File::NotFoundError)
(中略…)
Error: you've found a bug in the Crystal compiler. Please open an issue, including source code that will allow us to reproduce the bug: https://github.com/crystal-lang/crystal/issues
PS F:\dev\hello-cr\src>
なんだと
Visual Studio Build Toolsのインストール
改めてCrystal for Windows Previewの必要システム要件を見直してみると、VisualStudioもしくはVisual Studio Build Toolsが必要なようです。
VisualStudio Installerをダウンロードし、以下のコンポーネントをインストールします。
完了したら一度再起動します。
Hello Crystal!(再)
PS F:\dev\hello-cr\src> crystal run .\hello-cr.cr
Hello Crystal!
PS F:\dev\hello-cr\src>
🎉