My Advanced Linux/Advanced Linux 2009. 7. 24. 10:55
64bit 리눅스에 apache 컴파일시 오류가 난다.
이유는 간단하다. 64bit 라이브러리와 32bit 라이브러리를 착각하는 경우랄까...
보통은 /usr/lib 32bit용 라이브러리를 먼저 찾아서 컴파일 하려 하기 때문일 것이다.
오류)
/usr/lib/libdb-4.3.so: could not read symbols: File in wrong format
/usr/lib/libexpat.so: could not read symbols: File in wrong format
해결법)
# mv /usr/lib/libexpat.so /usr/lib/libexpat.so~
# mv /usr/lib/libdb-4.3.so /usr/lib/libdb-4.3.so~
# ln -s /lib64/libexpat.so.0.5.0 /usr/lib/libexpat.so
# ln -s /lib64/libdb-4.3.so /usr/lib/libdb-4.3.so
간단하게 컴파일러가 찾는 곳에다 링크를 해버리면 된다. 하하하하.. 이 얼마나 단순무식명쾌한 짓인가!
./configure 시에 --enable-lib64 --libdir=/usr/lib64 옵션을 줘서 해결해보자(난 이게 편하던데..)
이유는 간단하다. 64bit 라이브러리와 32bit 라이브러리를 착각하는 경우랄까...
보통은 /usr/lib 32bit용 라이브러리를 먼저 찾아서 컴파일 하려 하기 때문일 것이다.
오류)
/usr/lib/libdb-4.3.so: could not read symbols: File in wrong format
/usr/lib/libexpat.so: could not read symbols: File in wrong format
해결법)
# mv /usr/lib/libexpat.so /usr/lib/libexpat.so~
# mv /usr/lib/libdb-4.3.so /usr/lib/libdb-4.3.so~
# ln -s /lib64/libexpat.so.0.5.0 /usr/lib/libexpat.so
# ln -s /lib64/libdb-4.3.so /usr/lib/libdb-4.3.so
간단하게 컴파일러가 찾는 곳에다 링크를 해버리면 된다. 하하하하.. 이 얼마나 단순무식명쾌한 짓인가!
./configure 시에 --enable-lib64 --libdir=/usr/lib64 옵션을 줘서 해결해보자(난 이게 편하던데..)