gcc - 如何在 FreeBSD 8.1 64 位上使用 "gmake 32bit USE_JEMALLOC=yes"for redis

标签 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 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会成功,但是bug很大。在许多情况下,测试会失败并且 Redis 会出现段错误。我建议在 amd64 FreeBSD 上坚持使用 64 位 Redis,或者在 i386 上坚持使用 32 位 Redis。

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

关于gcc - 如何在 FreeBSD 8.1 64 位上使用 "gmake 32bit USE_JEMALLOC=yes"for redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995040/

相关文章:

php - 将 PHP session 和 cookie 视为缓存选项是否不好?

go - 获取响应行错误 - Redigo Redis Client

c - htonl() 与 __builtin_bswap32()

python - 调试错误 "gcc: error: x86_64-linux-gnu-gcc: No such file or directory"

c++ - 如何在二进制文件中设置内置版本号?

从不同大小的整数转换为指针(将 int 作为 const void * 参数传递)

c++ - Windows 上的默认 64 位地址数据类型

c# - 如何使 COM ActiveX 对象在 IE 64 位中工作?

lua - 为什么 lua 脚本会阻塞 redis-server?

gcc - 我可以让 Make 安排以并行模式打印的错误消息吗?