pidgin做为一个集成的即时通讯软件,有很多优点,但是对QQ支持的不好,最不能让人忍受的是好友名单竟然都是NULL,不知道开发者是怎么搞的!所以想自己动手编译一下,也可以修改一下程序。
在pidgin的主页上有在win32下编译pidgin的方法,见
http://developer.pidgin.im/wiki/BuildingWinPidgin。方法就是用cygwin在win32下编译。
考虑到现在MSYS+gcc win32用的很多,因此尝试用MSYS+gcc win32编译pidgin。
在E:/下新建一个pidgin目录,将下载的pidgin 2.4.1 解到此目录中。
然后参照BuildingWinPidgin中的说明,下载安装需要用到的开发包
GTK+、Libxml2、Perl 5.8、Tcl 8.4.5、GtkSpell / Aspell、Mozilla NSS、SILC Toolkit、Meanwhile、Bonjour SDK、Cyrus SASL
然后把它们解到E:/pidgin/win32-dev目录下,注意其中的Bonjour SDK安装后要改一下名字,中间有个下划线Bonjour_SDK。
参照说明,还有一个要注意的地方,就是Perl的安装目录,默认是安装在C:/Perl目录中,在cygwin环境中的目录是/cygwin/c/Perl,而MSYS中是没有映射/cygwin目录的,开始的时候使用ln将安装好的Perl连接到/cygwin/c中,发现由于WIN下没有文件LINK,MSYS是把文件直接考到自己的安装目录下,这个方法显然是不行的。后来注意到说明里面有一句“If you install Perl anywhere else, you will need to override the PERL and EXTUTILS variables in your pidgin/local.mak file.” 在pidgin目录中搜索一下PERL和EXTUTILS的写法,创建一个local.mak,内容如下:
PERL := /d/Perl/bin/perl
EXTUTILS := d:/perl/lib/ExtUtils
EXTUTILS := d:/perl/lib/ExtUtils
默认的是编译成DEBUG版本,如果想将其编译成release版本,找到libpurple/win32/global.mak,把CFLGAS段中的-g注释掉即可。
然后就可以在/e/pidgin/pidgin-2.4.1目录中输入make -f Makefile.mingw install了,
不过其中有几个makefile.am有点小问题,编译的时候会报 seperator error。找到后把if XXXXXX endif 注释掉即可,至于有什么影响,就不晓得了:)
运行之后QQ的好友名字还是NULL,查看调试信息,发现是GB18030转换到UTF8的时候有问题,不知道GB18030和GB2312有什么区别,把所有的GB18030替换成GB2312,重新编译,OK!但是群的名字显示还是NULL,还有就是如果有验证图片,也显示不出来,这个再慢慢找吧。
用着自己编译好的,QQ的名字也显示正常的pidgin,心里真爽:)