/ / wie man "gmake 32bit USE_JEMALLOC = yes" für Redis-Arbeit an FreeBSD 8.1 64-Bit - gcc, 64bit, Redis, Freebsd, Gnu-Make

wie man "gmake 32bit USE_JEMALLOC = yes" für redis Arbeit unter FreeBSD 8.1 64 bit - gcc, 64bit, redis, freebsd, gnu-make

Ich kann nicht 2.4 redis 32bit unter FreeBSD 64 bit kompilieren.

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

aber wenn ich redis kompiliere, bekomme

#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

Antworten:

0 für die Antwort № 1

Dazu müssen Sie den Compiler auf die 32-Bit-Bibliotheken zeigen. Sie können dies tun, indem Sie dem Befehl gmake Folgendes voranstellen:

CC = "cc -B / usr / lib32"

Das Kompilieren von Redis wird erfolgreich sein, aber es ist sehr fehlerhaft. Tests schlagen fehl und Redis segfaults in zahlreichen Situationen. Ich würde nur raten, bei 64-Bit-Redis auf amd64 FreeBSD oder 32-Bit-Redis auf i386 zu bleiben.

Noch ein Kommentar: Die von Redis verwendete Standalone-Jemalloc-Bibliothek baut nicht auf FreeBSD auf. Sie können den Standard-Allokator sowohl in FreeBSD als auch in NetBSD verwenden, da sie standardmäßig eine frühere Version von Jemalloc verwenden.