解決方法を教えてください。
(やりたいこと:svnクライアント1.7.5を入れたい。subversionサーバは特に必要ないです)
$ ./configure
$ make
[途中省略]
/usr/bin/ld: skipping incompatible /usr/lib/libldap.so when searching for -lldap
/usr/bin/ld: skipping incompatible /usr/lib/libldap.a when searching for -lldap
/usr/bin/ld: cannot find -lldap
collect2: ld returned 1 exit status
make: *** [subversion/libsvn_subr/libsvn_subr-1.la] Error 1
【環境】
CentOS release 5.3 (Final)
Linux 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
慣れればすぐに分かりますが、cannot find -lldap からわかります。
2012/05/20 19:28:20-lldap は -l ldap を省略したオプションで ldap というライブラリを探したけど見つからない。という意味です。
ライブラリ系は通常 xxx-devel という名前のパッケージになっているので、ldap-devel どというパッケージがあるんじゃないかと検討がつきます。そこで以下を実行してそれっぽいのを探します。
yum list | grep ldap | grep devel
すると openldap-devel というのが見つかるのでコレを入れればいいんだなと予想が付きます。
ソースからコンパイルする場合はこのようにライブラリが足りないという理由で失敗することが殆どで、足りないライブラリがあるときは大体上記の手順で見つかります。
ググっても見つからない理由は多分以下の2つでだいたい説明できそうです。
・何のライブラリが足りないかは人によって環境が違うので、ググっても全く同じエラー(足りないものが同じ)の人は少ないから。
・ライブラリが見つからないというエラーは、ソースからコンパイルする場合は本当によくあることだし、コンパイルが慣れてる人ならエラーメッセージを見れば何が足りないかはすぐわかることなので、わざわざネットにコピペ記事を書く人が居ない。
・-lldapは-l ldapの略
2012/05/26 19:38:22・ldapはldap-develを探せ
・openldap-devel が見つかるのでそれを入れろ
・コンパイル失敗の原因は、ライブラリが足りないことが多い。
ありがとうございました!
すっきりしました。