我正在尝试让memcached
在Windows上运行。我下载了最新的memcached
稳定版,并在Windows7下使用Mingw进行了编译。配置失败,出现错误,
正在检查libevent目录。。。configure:error: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
上运行configure。但由于某种原因,它再次以同样的错误失败。我不知道它为什么会失败。有人能帮我解决这个问题吗?或者有更好的方法让memcached
在Windows上运行吗?我见过很多为Windows预先构建的二进制文件。但它们都使用旧版本的memcached
。和AFAIK,Windows在新版本中由memcached
正式支持。
我使用的是带有MinGW的Windows7 64位版本。
在libevent
目录中运行make
后,您可以准备好文件,但要充分利用它,必须安装它们。因此需要make install
步骤。如果您使用前缀配置它,它将位于您选择的目录中。否则为/usr/local
。
因此,在libevent-dir中运行make install
,在没有参数的情况下从memcache运行configure
就足够了。
如果在通过配置阶段时仍然存在问题,请查看config.log
。它显示了失败的源文件和gcc命令。
不幸的是,成功的configure
并不是一切稍后它在包含sys/socket.h
、netinet/in.h
和netdb.h
以及可能还有-pthread
gcc参数时失败。我担心它不会在mingw上编译。至少不是没有认真的移植工作。
据我所知,从未有过正式的Windows Memcached端口(是的,很少有单独的努力。最近知道的移植工作可以在1.2.6版本上找到)最著名的是在Couchbase上用Memcached Bucket实现Memcached for Windows。
我意识到派对迟到了,但答案是使用:
$ export LIBS=-lws2_32
这将把$LIBS
放在编译调用的末尾,以便它链接到libws2_32.a
或winsocks2,但这可能意味着您没有正确配置您的构建,您将出现后续错误,如找不到#include <sys/socket.h>
标头等。
请参阅mingw链接器错误winsock