【问题标题】:How to compile memcached on Windows?如何在 Windows 上编译 memcached?
【发布时间】:2012-10-19 12:49:09
【问题描述】:

我正在尝试让memcached 在 Windows 上运行。我已经下载了memcached stable latest 并在 Windows 7 下使用 Mingw 编译它。配置失败并出现错误,

检查 libevent 目录...配置:错误:libevent 是 必需的。你可以从http://www.monkey.org/~provos/libevent/获得它

  If it's already installed, specify its path using --with-libevent=/dir/

然后我下载了libevent并编译了它。这产生了 3 个 DLL,libeventcore、libevent-extra 和 libevent-2.0.5。

我再次使用--with-libevent 选项在memcached 上运行配置。但是由于某种原因,它再次失败并出现相同的错误。我不知道它为什么会失败。谁能帮我解决这个问题?或者有没有更好的方法让memcached 在 Windows 上运行?我见过很多为 Windows 预先构建的二进制文件。但他们都使用旧版本的memcached。和 AFAIK,Windows 在较新版本中得到 memcached 的正式支持。

我正在使用带有 MinGW 的 Windows7 64 位版本。

【问题讨论】:

  • 你试过 Couchbase 和 Memcached Bucket 吗?
  • @dasun 我没试过。会试一试。
  • 对于编译,您不仅需要运行时需要的 .dll,还需要头文件和 .lib。你把它们放在什么地方了吗?
  • @nos:是的。所有这些都可用。

标签: c windows memcached mingw libevent


【解决方案1】:

libevent 目录中运行make 后,您就可以准备好文件,但要充分利用它,必须安装它们。所以需要make install 步骤。如果您使用前缀配置它,它将位于您选择的目录中。否则为/usr/local

所以也许在 libevent 目录中运行 make install 并在不带参数的情况下从 memcache 运行 configure 就足够了。

如果您在通过配置阶段仍有问题,请查看config.log。它显示了源文件和失败的 gcc 命令。

不幸的是,成功的configure 并不是一切。 后来它失败了包含sys/socket.hnetinet/in.hnetdb.h,也许还有-pthread gcc 参数。恐怕它不会在 mingw 上编译。至少不是没有认真的移植工作。

【讨论】:

    【解决方案2】:

    据我所知,从未有过 Windows 的官方 Memcached 端口(是的,个人努力很少。最后知道的移植工作可以在版本 1.2.6 here 上找到)在 Couchbase 上使用 Memcached 对 Windows 进行 Memcached 的最佳实现桶。

    【讨论】:

      【解决方案3】:

      我意识到迟到了,但答案是使用:

      $ export LIBS=-lws2_32
      

      这会将$LIBS 放在编译调用的末尾,以便它链接到libws2_32.a 或winsocks2,但这可能意味着您没有正确配置您的构建并且您将随后出现错误,例如#include <sys/socket.h> 标头未找到等。

      mingw-linker-error-winsock

      【讨论】:

        猜你喜欢
        • 2012-03-14
        • 2017-02-21
        • 2013-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多