windows 下编译jabberd2的痛苦经历

本文详细记录了作者在尝试编译jabberd2过程中的种种困难,包括依赖库的编译、主模块和扩展模块的编译等。经过多次尝试,最终在下载特定修订版本后在Windows平台上顺利编译成功。文中还涉及了开源库的使用、版本匹配等问题,分享了解决方案。

编译jabberd2的痛苦经历: 
(1) 
昨天试着在linux上编译最新版本的jabber2有个udns版本太低的错误,找了很多资料没有解决,可能是代码有bug. 
昨晚试着编译windows的jabber2,也遇到了好多问题,jabber2的开发人员真是不负责啊 

1.依赖库编译(%*,*完成): 
============== 
%*libidn version 1.7 or higher, source build using win32/libidn.sln, provides: libidn.lib 
编译时候出现const错误,解决方法: 
dll的宏修改 
#ifdef DLL_EXPORT 
   #define DLL_API __declspec(dllexport) 
#else 
   #define DLL_API __declspec(dllimport) 
#endif 

%*libgsasl version 0.2.28 or higher, source build using win32/libgsasl.sln, provides: libgsasl.lib 

%*OpenSSL source build, read win32 build instructions provided along with sources, provides: libeay32.lib ssleay32.lib 

%*Expat XML Parser source build using expat.dsw (auto-converted), provides: libexpat.lib 


%*udns source build, provides: udns.lib, since there are no VC project files provided along with sources, please use patch files provided at Downloads. 
按照网络上的说法,下载的vc patch用windows下的patch工具打补丁运行老是出现断言,网友真是很不负责,只好上传到linux下,用linux的patch工具成功 
命令: 
patch -p0 < diff.patch 

%*zlib source build, provides: zlib1.lib, convert & use VC project files at projects/visualc6, link to Win32_DLL_ASM_Release. 
If you encounter MASM error: ./inffas32.asm(647) : error A2070: invalid instruction operands 
Add a dword ptr type qualifier before [esp] as described here. 


%*MySQL (auth & storage module) binary, linking to: libmysql.lib 


%*SQLite (auth & storage module) source build, provides: sqlite3.lib. Since there are no libraries for VC except DLLs you shall make one using sqlite-amalgamation-3.x.zip from SQLite downloads. 

%*TortoiseSVN SubWCRev command present in PATH to generate version.h and version.wxi. Comes with TortoiseSVN bin folder, added to PATH by TortoiseSVN installer. 

WiX 3.0.4401.0 or newer for building MSI jabberd2 setup inside Visual Studio 2005 IDE 

%*ActivePerl (or any Perl distribution) perl command present in PATH (optional for generation of default configuration XML files) 


2.主模块编译: 
============== 

*jabberd2 
*sm 
*router 
*s2s 
c2s: 
出现一个函数未定义 
*authreg_anon 
authreg_mysql  =>c2s,jabberd2: 

mysql.h找不到 
*authreg_ntlogon 
*authreg_sqlite 
*storage_sqlite 

3.扩展模块编译: 
============== 
mod: 
mod_active * 
mod_amp* 
mod_announce* 
mod_deliver* 
... 
很多库提示C++方式的变量声明非法 

    

(2) 
昨晚用svn下载了752修订版本,2009 3月份的,后面所有代码在windows上顺利编译成功,不过开源库:libgsasl.dll有问题,换 了原版的就搞定了.

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值