GHCiはghciまたはghc --interactiveというコマンドで起動される。一つまたは複数のモジュールやファイル名をコマンド行から指定することもできる。そうすると、GHCiは、プロンプトで:load と入力されたときと同じように(2.7. GHCiのコマンド群を見よ)、指定されたモジュールやファイル(と、それらが依存するモジュール)をロードする。例えば、GHCiを起動して、プログラム(moduleMain.hsに最上位モジュールがある)をロードするには、次のように打てば良い。
$ ghci Main.hs
GHCが受け付けるコマンド行オプション(第4章. GHCを使うを見よ)の大部分は対話的モードでも有効であり、そうでないオプションは大抵明らかである。
大部分のパッケージ(4.9.1. パッケージを使う を見よ)は追加のフラグを指定することなく利用可能であり、初めて必要になったときに自動的にロードされる。
一方で、隠されたパッケージについては、-packageフラグを使ってロードを依頼する必要がある。
$ ghci -package readline GHCi, version 6.8.1: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Loading package readline-1.0 ... linking ... done. Prelude>
起動中のGHCiから新しいパッケージをロードするには、次のコマンドが使える。
Prelude> :set -package name
ただし、これをするとロードされているモジュールが全て未ロードになり、Preludeに戻されることになるので注意。
追加のライブラリは、コマンド行から、通常の-lオプションを使って指定することができる。(ここでいうライブラリとは、他言語のオブジェクトコードのライブラリのことである。Haskellソースのライブラリを使うことについては、2.2.1. モジュールとファイル名を見よ)例えば、「m」ライブラリをロードするには、次のようにすれば良い。lib
$ ghci -lm
.so形式の共有ライブラリを使うシステムでは、実際にロードされるライブラリはlibである。GHCiは、ライブラリを探すとき、以下の場所をこの順で試す。lib.so
-Lコマンド行オプションで指定されたパス。path
システムの標準ライブラリ探索パス。これは、システムによっては、LD_LIBRARY_PATH環境変数を設定することで変更できる。
.dll形式の共有ライブラリを使うシステムでは、実際にロードされるライブラリはである。この場合も、ライブラリが見付からなかった場合はGHCiはエラーを報告する。lib.dll
GHCiは単なるオブジェクトファイル(プラットフォームによって、.oか.objである)をコマンド行からロードすることもできる。これには、オブジェクトファイルの名前をコマンド行に追加するだけで良い。
-lの順序は意味を持つ。あるライブラリは、それが依存するライブラリよりも前に言及されなければならない。(4.12.6. リンクに影響するオプションを見よ)