如何在Windows上编译memcached?

5

我正在尝试在Windows系统上运行memcached。我已经下载了最新的稳定版memcached并在Windows 7下使用Mingw编译了它。但是配置时出现了错误。

checking for libevent directory... configure: error: libevent is required. You can get it from 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-libeventmemcached上运行配置。但由于某种原因,它再次以相同的错误失败。我不知道为什么会失败。有人能帮我解决这个问题吗?或者有没有更好的方法在Windows上运行memcached?我看到了很多预编译的Windows二进制文件。但它们都使用旧版本的memcached。据我所知,Windows在较新版本中受到memcached的官方支持。
我正在使用64位版本的Windows7和MinGW。

1
你尝试过使用Memcached Bucket的Couchbase吗? - Dasun
@dasun 我还没有尝试过。我会试一下的。 - Navaneeth K N
编译时,您不仅需要运行时所需的.dll文件,还需要头文件和一个.lib文件。您是否已经将它们放在某个地方了? - nos
@nos:是的,所有这些都可以使用。 - Navaneeth K N
3个回答

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上无法编译。至少不会没有严重的移植工作。


0
晚来了,但答案是使用以下代码:

$ export LIBS=-lws2_32

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

请参见mingw-linker-error-winsock


0
据我所知,Windows从未有过官方的Memcached端口(是的,有一些个人努力。最后一个已知的移植尝试可以在版本1.2.6 这里找到)。目前在Couchbase上使用Memcached Bucket是Windows上最好的已知实现方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接