这是几年前写的技术文章,博客开始整理,所以。。。
最近要在Windows操作系统上架设一个IM服务器,选择的是jabberd2,选择在Windows上原因是在Linux上调试与Windows相比没有后者这么方便直观,也许这句话会使许多的linux的忠实粉丝有些不爽,我采用Linux调试的方法是写日志,遇到崩溃问题才会启用GDB调试,而在Windows上调试,可以让你很快了解程序的一个大体流程,随着可见调试的一步一步执行,加快对程序的理解。
然而在Windows上编译jabberd2可不是一件容易的事情,至少对我来说是这样的。我在网络上查阅了许多的资料,都没有相关的详尽资料,而官方则是提供jabberd2依赖库文件的源码下载地址(有十一个),让我怀疑他们是否真的在Windows上编译过。所以只能硬着头皮一个一个编译。
现在我就将我在windows上编译jabberd2的经验分享与大家,希望对大家有所帮助!
《一》准备源码
1 下载jabberd-2.2.16(以这个版本说明)。
2 下载jabberd2包中README.win32中列出的源码或是软件。
《二》列表说明
jabberd2需要README.win32文件提供的源码或软件共11个,下面我们按照README.win32文件的顺序一个一个的说明。
(1) libidn
先下载源码,我下载的是libidn-1.7,然后解压,进入到win32,打开libidn.sln,将配置属性->C/C++->高级->编译为->编译为 C 代码(/TC)(以下的依赖源码都要这么做,以防出现异常情况,比如在C中声明int private会报错,因为private是C++中的关键字。),然后编译,提供libidn.lib,我编译的是静态库,可以在属性->配置属性->常规->配置类型中设置。然后将生产的库加入到jabberd2\win32\lib或jabberd2\win32\lib\debug目录下,建议放在debug目录下。
(2) libgsasl
下载源码,下载的版本是gsasl-0.2.28,更好的版本好似没有win32目录价,并且有些文件找不到,所以采用了这个版本,进入到lib\win32目录,打开libgsasl.sln,设置编译为C 代码(/TC),然后编译,提供libgsasl.lib,将lib文件拷贝到jabberd2\win32\lib\debug目录下。
(3) OpenSSL
下载源码,下载的版本是openssl-1.0.1e,编译这个比较繁琐&#