redis-2.6.* 버전을 설치하려고 할때 make 에러가 나는 경우.. 해결 방법
# cd /usr/local/src
# wget http://redis.googlecode.com/files/redis-2.6.5.tar.gz
# tar zxvf redis-2.6.5.tar.gz
# cp -Rf redis-2.6.5 /usr/local/redis
# cd /usr/local/redis
# make
이렇게 진행을 하면,
/usr/local/redis/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
이런 식의 에러가 떨어지는 경우가 있을 것이다.
(어쨌든 make를 한 번 실행해주도록 한다. src/.make-settings 생성되도록)
gcc 컴파일 옵션의 문제인데, cpu 타입을 정해주면 된다.
make시 cpu 타입을 –march로 정해주도록 작업을 해야됨
(cpu타입에 관한 자세한 옵션값은 http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html에서 확인)
우선 해당 서버의 cpu타입을 확인
# uname –a
Linux localhost.localdomain 2.6.18-308.el5PAE #1 SMP Tue Feb 21 20:46:05 EST 2012 i686 i686 i386 GNU/Linux
이렇게 나왔다면 i686 이다.
src폴더의 .make-settings 에서 –march를 설정하자.
# vi ./src/.make-settings
OPT=-O2 –march=i686
# make
이번엔 에러없이 잘 설치가 되었을 것이다.