# cd /usr/local/src/apache-2.2.8-php4 # ./configure \ "--prefix=/usr/local/apache228-php4" \ "--enable-module=so" \ "--enable-module=rewrite" # make ... /usr/lib/libexpat.so: could not read symbols: File in wrong format ... make: *** [all-recursive] エラー 1
/usr/lib/libexpat.so のファイルフォーマットがおかしいってって怒られた。
# ls -l /usr/lib/libexpat.so lrwxrwxrwx 1 root root 27 1月 25 15:03 /usr/lib/libexpat.so -> ../../lib/libexpat.so.0.5.0 # file ../../lib/libexpat.so.0.5.0 ../../lib/libexpat.so.0.5.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped
ぐぐってみると、
CentOSにApacheの2.0系最新版(2.0.63)をインストールしようとしてmakeしていたらエラーが出た。
/usr/lib/libexpat.so: could not read symbols: File in wrong format collect2: ld returned 1 exit status調べてみると、何やら64ビットOS(x86_64)を使っているときに出るみたい。
libexpat.soは、/usr/libにもあるんだけど、64ビット用(x86_64)のは/usr/lib64にあると。
--with-expat=builtinというわけで、書かれてある通り、"./configure"時に以下のオプションを追加して解決。
libexpat.so: could not read symbols: File in wrong format - 元RX-7乗りの適当な日々
ってことらしいので、試してみると、
# make distclean # ./configure \ "--prefix=/usr/local/apache228-php4" \ "--enable-module=so" \ "--enable-module=rewrite" \ "--with-expat=builtin" # make # make install
解決!