【问题标题】:How to compile REDIS 5.0.5 on Windows-10, error in make如何在 Windows-10 上编译 REDIS 5.0.5,make 中的错误
【发布时间】:2019-06-07 16:39:25
【问题描述】:

Redis 下载 5.0.5 cd 到 src 目录 制作

这肯定适用于其他人。关于如何解决这个问题的任何想法/提示?

短版:

net.c ...

make[3]: Entering directory '/cygdrive/c/Users/pmoran/Downloads/redis-5.0.5/deps/hiredis'
cc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c

net.c:270:21: error: storage size of ‘hints’ isn’t known
 struct addrinfo hints, *servinfo, *bservinfo, *p, *b;
                 ^~~~~

以后

net.c:337:40: error: dereferencing pointer to incomplete type ‘struct addrinfo’
 for (p = servinfo; p != NULL; p = p->ai_next) {
                                    ^~

然后

make[3]: *** [Makefile:156: net.o] Error 1
make[3]: Leaving directory '/cygdrive/c/Users/pmoran/Downloads/redis-5.0.5/deps/hiredis'
make[2]: *** [Makefile:46: hiredis] Error 2
make[2]: Leaving directory '/cygdrive/c/Users/pmoran/Downloads/redis-5.0.5/deps'

最后

cc: error: ../deps/hiredis/libhiredis.a: No such file or directory
cc: error: ../deps/lua/src/liblua.a: No such file or directory
make[1]: *** [Makefile:219: redis-server] Error 1
make[1]: Leaving directory '/cygdrive/c/Users/pmoran/Downloads/redis-5.0.5/src'
make: *** [Makefile:6: all] Error 2

【问题讨论】:

    标签: makefile redis compilation windows-10 mingw-w64


    【解决方案1】:

    我遇到了同样的问题,我发现最好的解决方案是使用旧版本的 redis。 Redis 3.2.13 最近(2019 年 3 月)进行了更新,因此它具有我需要的所有功能。如果你使用它,你必须在'include'语句之后添加以下内容到redis-3.2.13/deps/hiredis/net.c:

        #ifdef __CYGWIN__
        #define TCP_KEEPCNT 8
        #define TCP_KEEPINTVL 150
        #define TCP_KEEPIDLE 14400
        #endif
    

    之后我就可以从根目录运行make了:

    make distclean
    make
    

    这是基于this github 对话。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      你可以试试。

      第 1 步:
      从行中删除段 '-std=c99' $(CC) -std=c99 -pedantic -c $(REAL_CFLAGS) $

      第 2 步:
      在 include deps/hiredis/net.c 之后的 'include' 语句之后添加以下段:

      #ifndef TCP_KEEPCNT
          #define TCP_KEEPCNT 8    
      #endif
      
      #ifndef TCP_KEEPINTVL
          #define TCP_KEEPINTVL 150   
      #endif
      
      #ifndef TCP_KEEPIDLE
          #define TCP_KEEPIDLE 14400   
      #endif
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-15
        • 1970-01-01
        • 2014-10-08
        • 2019-05-18
        相关资源
        最近更新 更多