如何在Windows上编译memcached?

时间:2012-10-30 07:41:48

标签: c windows memcached mingw libevent

我想在Windows上运行memcached。我已经下载了memcached最新的稳定版本,并在Windows 7下使用Mingw进行了编译。配置失败,错误,

  

检查libevent目录... configure:错误: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。

我使用选项memcached再次在--with-libevent上运行配置。但由于某种原因,它再次失败并出现同样的错误。我不知道它失败的原因。任何人都可以帮我解决这个问题吗?或者有更好的方法让memcached在Windows上运行?我已经看到很多用于Windows的预构建二进制文件。但他们都使用memcached的旧版本。在新版本中,memcached正式支持AFAIK,Windows。

我在MinGW上使用Windows7 64位版本。

3 个答案:

答案 0 :(得分:1)

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

所以也许在libevent目录中运行make install并从没有参数的memcache运行configure就足够了。

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

不幸的是,成功configure不是一切。 以后无法包含sys/socket.hnetinet/in.hnetdb.h以及-pthread gcc参数。我担心它不会在mingw上编译。至少没有一次严肃的移植工作。

答案 1 :(得分:0)

据我所知,从来没有一个适用于Windows的官方Memcached端口(是的,很少有个人努力。上一次知道移植工作可以在版本1.2.6上找到here)最佳已知的实现Memcached for Windows on Couchbase使用Memcached Bucket。

答案 2 :(得分:0)

我认识到晚会,但答案是使用:

$ export LIBS=-lws2_32

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

请参阅mingw-linker-error-winsock