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