2011-08-09 3 views
0

Je ne peux pas compiler 2.4 Redis 32 bits sur FreeBSD 64 bits. Je l'ai déjà fait:comment "gmake 32bit USE_JEMALLOC = yes" pour redis travailler sur FreeBSD 8.1 64 bits

cd /usr/lib32 
ftp ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/8.1-RELEASE/lib32/ 
prompt 
mget *.* 
quit 
sh install.sh 
csup -h cvsup.freebsd.org /usr/share/examples/cvsup/standard-supfile 
cd /usr/src; make build32 install32; ldconfig -v -m -R /usr/lib32 

mais lorsque je tente de compiler Redis i get:

#gmake 32bit USE_JEMALLOC=yes 
..... 

MAKE linenoise 
gmake[3]: Entering directory `/usr/home/7k7ktest/redis/deps/linenoise' 
cc -m32 -c -Wall -W -Os -g linenoise.c 
cc -m32 -c -Wall -W -Os -g example.c 
cc -m32 -Wall -W -Os -g -o linenoise_example linenoise.o example.o 
/usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for -lgcc 
/usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for -lgcc 
/usr/bin/ld: cannot find -lgcc 
gmake[3]: *** [linenoise_example] Error 1 
gmake[3]: Leaving directory `/usr/home/7k7ktest/redis/deps/linenoise' 
gmake[2]: *** [dependencies] Error 2 
gmake[2]: Leaving directory `/usr/home/7k7ktest/redis/src' 
gmake[1]: *** [32bit] Error 2 
gmake[1]: Leaving directory `/usr/home/7k7ktest/redis/src' 
gmake: *** [32bit] Error 2 

Répondre

0

Vous devez pointer le compilateur aux 32 bibliothèques de bits pour que cela fonctionne sur. Vous pouvez le faire en préfixant la commande gmake avec:

CC = "cc -B/usr/lib32"

Redis sera Compiler avec succès, mais il est très buggy. Les tests échouent et Redis Segfaults dans de nombreuses situations. Je conseillerais juste de coller avec Redis 64 bits sur amd64 FreeBSD, ou Redis 32 bits sur i386.

Autre commentaire: la bibliothèque jemalloc autonome utilisée par Redis ne se base pas sur FreeBSD. Vous pouvez utiliser l'allocateur par défaut dans FreeBSD et NetBSD, car ils utilisent par défaut une version antérieure de jemalloc.

Questions connexes