いきさつ
- Windows 上の Visual Studio Code で Haskell の開発環境を整えようとする。
- haskell-ide-engine を Visual Studio Code から使う機能拡張が GHC 8.0.2 にしか対応していない(この記事の執筆時点での最新版は GHC 8.2.2)
- haskell-ide-engine を GHC 8.0.2 の設定でビルドしてみたら text-icu のコンパイルでコケた(以下のようなエラーが出た)
libraries: * Missing C libraries: icuuc, icuin, icudt This problem can usually be solved by installing the system packages that provide these libraries (you may need the "-dev" versions). If the libraries are already installed but in a non-standard location then you can use the flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
原因
設定されている include パスおよびライブラリパス上に ICU 関連のライブラリがない。
解決方法
まず ICU のダウンロードページから ICU4C 49.1.2(icu4c-49_1_2-Win64-msvc10.zip)をダウンロードする。text-icu のドキュメントによれば ICU 4.0 より新しければいいようだが、あまり新しくても text-icu のコンパイルだけは通るが、haskell-ide-engine のビルドが途中でエラーになるのでこのバージョンにした。
ICU4C のインストールは解凍して適当なフォルダに置くだけ。その置き場を C:\sr\config.yaml に記述する。
extra-include-dirs: - /path/to/your/icu/include extra-lib-dirs: - /path/to/your/icu/lib64 |
これでとりあえず ICU がらみのエラーはでなくなったが……haskell-ide-engine 自体のビルドは未だ成功していないのであった。