Daily Archives: 2018年2月9日

text-icuをWindowsで使う

いきさつ

  • 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 自体のビルドは未だ成功していないのであった。