x86_64環境でのocaml-mysqlが上手く動かなかった件

先日から、AWS EC2上にFree usage tierのインスタンスを作って、CPU使うようなことはそちらで行おうとしています。まぁきっかけは節電なんですが、もともとEC2に興味があったので。

それはさておき、動かそうとしているのはMySQLをstorageとしたOCamlのプログラムなんですが、ocaml-mysqlライブラリをビルドして動かそうとしたらはまったのでメモを。

まず、./configureの結果なんですけども。

configure: checking libraries...
configure: checking for MySQL library...
checking for mysql_real_connect in -lmysqlclient... no
configure: checking in more locations...
checking for mysql_real_connect in -lmysqlclient... no

最初は気がつかなくって、見返してみたらnoのまま突き進んでいるという、ちゃんとエラーで止めてほしい系です。

でも、ldconfig -p でもlibmysqlclientは見えているので、変だなぁと。

で、そのままmakeすると-lmysqlclientを付けずにocaml-mysqlをbuildしてしまいます。


このまま、自分のプログラムをコンパイルすると

/home/ec2-user/arch/ocaml-mysql-1.1.0/mysql_stubs.c:199: undefined reference to `mysql_real_connect'

とか怒られまくります。


なので、ocaml-mysqlのmakeの際、Makefileに以下の一行を追加してやって解決。

LDFLAGS=-L/usr/lib64/mysql -lmysqlclient