我正在尝试在 Windows 上构建 memcached。这是我得到的:

$ make 
make  all-recursive 
make[1]: Entering directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6' 
Making all in doc 
make[2]: Entering directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6/doc' 
make  all-am 
make[3]: Entering directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6/doc' 
make[3]: Nothing to be done for `all-am'. 
make[3]: Leaving directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6/doc' 
make[2]: Leaving directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6/doc' 
make[2]: Entering directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6' 
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I/usr/local/include   -g -O2 -pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declaration 
s -Wredundant-decls -MT memcached-memcached.o -MD -MP -MF .deps/memcached-memcached.Tpo -c -o memcached-memcached.o `test -f 'memcached.c' || echo './ 
'`memcached.c 
gcc: unrecognized option '-pthread' 
cc1: warnings being treated as errors 
memcached.c: In function `sanitycheck': 
memcached.c:4361: error: array subscript has type `char' 
make[2]: *** [memcached-memcached.o] Error 1 
make[2]: Leaving directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/cygdrive/d/Project Storage/adam/memcached-1.4.6' 

有什么我遗漏的吗?

请您参考如下方法:

首先,您必须使用 static linkage 进行配置

export CFLAGS='-static -static-libgcc' 

然后在 sanitycheck 中给 int 添加一个类型转换

!isdigit((int)ever[3])) 

如果您想要 testapp.c,我必须将 sigaction init 更改为

struct sigaction action; // The init here did not work with cygwin gcc 4.5.3 
action.sa_flags=0;  
action.sa_handler=SIG_IGN; 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!