Gcc 如何";gmake 32位使用“JEMALLOC=yes”;对于redis,在FreeBSD 8.1 64位上工作

Gcc 如何";gmake 32位使用“JEMALLOC=yes”;对于redis,在FreeBSD 8.1 64位上工作,gcc,64-bit,redis,freebsd,gnu-make,Gcc,64 Bit,Redis,Freebsd,Gnu Make,我无法在FreeBSD 64位上编译2.4 redis 32位。我已经做了: 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 bui

我无法在FreeBSD 64位上编译2.4 redis 32位。我已经做了:

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
但当我尝试编译redis时,我得到:

#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

您需要将编译器指向32位库才能解决此问题。您可以通过在gmake命令前面加上以下前缀来执行此操作:

CC=“CC-B/usr/lib32”

编译Redis将是成功的,但它有很多缺陷。在许多情况下,测试失败并出现故障。我建议只使用amd64 FreeBSD上的64位Redis,或i386上的32位Redis

另一条评论:Redis使用的独立jemalloc库不是基于FreeBSD构建的。您可以在FreeBSD和NetBSD中使用默认分配器,因为默认情况下它们使用早期版本的jemalloc