CentOS5.6 で、monit5.1.1 をインストールしようとしたら、make でエラーが出てしまった。
% ./configure --prefix=/usr/local % make ** 中略 ** /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread /usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread /usr/bin/ld: skipping incompatible /usr/lib/libpam.so when searching for -lpam /usr/bin/ld: skipping incompatible /usr/lib/libcrypt.so when searching for -lcrypt /usr/bin/ld: skipping incompatible /usr/lib/libcrypt.a when searching for -lcrypt /usr/bin/ld: skipping incompatible /usr/lib/libresolv.so when searching for -lresolv /usr/bin/ld: skipping incompatible /usr/lib/libresolv.a when searching for -lresolv /usr/bin/ld: skipping incompatible /usr/lib/libnsl.so when searching for -lnsl /usr/bin/ld: skipping incompatible /usr/lib/libnsl.a when searching for -lnsl /usr/bin/ld: skipping incompatible /usr/lib/libssl.so when searching for -lssl /usr/bin/ld: skipping incompatible /usr/lib/libssl.a when searching for -lssl /usr/bin/ld: skipping incompatible /usr/lib/libcrypto.so when searching for -lcrypto /usr/bin/ld: skipping incompatible /usr/lib/libcrypto.a when searching for -lcrypto /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc /usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
どうも、32bit と 64bit がごっちゃになってることが原因らしい。32bitのライブラリで64bitのコンパイルをしようとしている?のかな…?
Makefile をいじることで回避しました。
% ./configure --prefix=/usr/local % vi Makefile
LIB = -lfl -lpthread -lpam -lcrypt -lresolv -lnsl -L/usr/lib -lssl -lcrypto
↓
LIB = -lfl -lpthread -lpam -lcrypt -lresolv -lnsl -L/usr/lib64 -lssl -lcrypto
として、/usr/lib ではなく /usr/lib64 を使うように変更しました。これで無事コンパイルが通りました。