编译jabberd2的痛苦经历

编译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有问题,换 了原版的就搞定了.

你可能感兴趣的:(linux,mysql,windows,sqlite,vc++)