fu7mu4’s diary

はてなダイアリーから移転しました。

opam install core で失敗する

こんな人はほぼいないと思うが、opam install core で OCaml の core パッケージをインストールすると失敗することがありえる。
そのMacのデフォルトのCコンパイラがclangではなくgccになっている場合、Appleのsyslog.hを読みにいって、そこで死ぬ。

原因は macport でインストールした gcc がデフォルトになっているから。
さてどうやって戻そうか

できなかったので、とりあえず、PATH環境変数から /opt/local/bin を削除して /opt/local/bin/gcc を見付けられないようにしてから、opam install coreでインストールするとうまくいった。

以下、失敗した例

CC, CPP, CXX環境変数

こういうときにデフォルトのコンパイラを指定する方法として、

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
opam install core

CC=/usr/bin/clang CXX=/usr/bin/clang++ opam install core

といった方法があるがこれもうまくいかない。
gccが呼出される。ビルド時に別のシェルでもよんでいるみたい。

DEVELOPER_DIR環境変数

複数のXcodeがある場合に、DEVELOPER_DIR環境変数Xcodeの環境を設定できるらしい。
Xcodeは最新のものひとつだけだったがこれを指定した。しかしやはり gcc が呼出されてしまう。

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Resource/Develop
だったか。

plistにかいておいて、ログイン時に読み込ませればあるいは可能性があったのかも?