在Windows下编译pidgin

Windows下编译pidgin

建立Mingw + MSYS编译环境

网络上方法很多,笔者经过试验,选择了一个比较简单方便的安装方法。

一、到下面的网站下载MingW安装文件
http://www.tdragon.net/recentgcc/
TDM/MinGW Installer

不用MingW网站上的安装文件,是因为MingW的安装程序无法手工选择速度较快的sf.net下载网站。

安装时,先选择检查更新,然后选择安装部件,因为目的仅仅是编译pidgin,所以只选择了TDM recommanded C/C++,选择下载的镜像服务器,以大陆的网络环境,通常以选择北美的服务器速度较快。

安装位置,本人选择在:D:/MINGW

二、下载安装msysmsysDTK
google MSYS-1.0.10.exe
得到下载地址:
http://sourceforge.net/project/downloading.php?groupname=mingw&filename=MSYS-1.0.10.exe

google msysDTK-1.0.1.exe
得到下载地址:
http://sourceforge.net/project/downloading.php?groupname=mingw&filename=msysDTK-1.0.1.exe

下载完成后,2个文件都安装到安装到目录:D:/msys/1.0

msys安装到最后会出现一个Dos窗口,都选择y,当询问 MinGW 的安装路径时:
Please answer the following in the form of c:/msys Where is your MinGW installation?
输入MinGW的安装路径D:/MinGW

注意:
切不可把MSYS安装到D:/MINGW,否则,编译时会出现错误:
gcc.exe: no input files
而无法进行编译工作。

三、修改windows环境变量
进入控制面板-系统-高级-环境变量-系统变量,找到PATH一栏,点选编辑,在末尾加入以下新路径
d:/mingw/bin;D:/msys/1.0/bin;

编译pidgin

一、下载pidgin的源代码和编译所需要的各种库文件
主要参照以下pidgin文档
http://developer.pidgin.im/wiki/BuildingWinPidgin

先建立一个pidgin开发目录,如:
F:/pidgin
pidgin的源文件,如pidgin-2.5.2.tar.bz2,存入F:/pidgin

以下库文件存入 F:/pidgin/win32-dev 目录:
GTK+
gtk-dev-2.6.10-rev-a.tar.gz
Libxml2
libxml2-2.6.30.tar.gz
Perl 5.10
perl_5-10-0.tar.gz
Tcl 8.4.5
tcl-8.4.5.tar.gz
GtkSpell / Aspell
aspell-dev-0-50-3-3.zipgtkspell-2.0.11-daa1.tar.gz
Mozilla NSS
Network Security Services (NSS) Netscape Portable Runtime (NSPR)
SILC Toolkit
silc-toolkit-1.1.7.tar.gz
Meanwhile
meanwhile-1.0.2_daa1-win32.zip
Bonjour SDK
the Apple developer website,注意安装目录一定要修改为 F:/pidgin/win32-dev/Bonjour_SDK
Cyrus SASL
cyrus-sasl-2.1.22-daa1.zip

安装后的目录结构如下图:

F:.
└─pidgin
    ├─pidgin-2.5.2
    └─win32-dev
        ├─aspell-dev-0-50-3-3
        ├─cyrus-sasl-2.1.22-daa1
        ├─gtk_2_0
        ├─gtkspell-2.0.11-daa1
        ├─libxml2-2.6.30
        ├─meanwhile-1.0.2_daa1
        ├─nspr-4.6.4
        ├─nss-3.11.4
        ├─perl-5.10.0
        ├─silc-toolkit-1.1.7
        ├─tcl-8.4.5
        └─Bonjour_SDK

二、开始编译
进入DOS命令窗口,切换到目录:
F:/pidgin/pidgin-2.5.1

输入命令并按回车执行:
make -f Makefile.mingw

如果没有安装perltcl,不需要按网站上说的那样去下载安装,直接修改:
libpurple/plugins/Makefile.mingw
pidgin/plugins/Makefile.mingw
# 注释掉perltcl相关的行就可以继续编译了

如果安装了perl参照说明,还有一个要注意的地方,就是Perl的安装目录,默认是安装在C:/Perl目录中,在cygwin环境中的目录是/cygwin/c/Perl,而MSYS中是没有映射/cygwin目录的,开始的时候使用ln将安装好的Perl连接到/cygwin/c中,发现由于WIN下没有文件LINKMSYS是把文件直接考到自己的安装目录下,这个方法显然是不行的。后来注意到说明里面有一句“If you install Perl anywhere else, you will need to override the PERL and EXTUTILS variables in your pidgin/local.mak file.” 在pidgin目录中搜索一下PERLEXTUTILS的写法,创建一个local.mak,内容如下:

        PERL := /c/Perl/bin/perl
        EXTUTILS := c:/perl/lib/ExtUtils

 

编译中的一些问题和选项

1. windres的一个小问题
当编译到pidgin/win32/pidgin_dll_rc.rcpidgin_exe_rc.rc时,编译器提示:
windress
无法打开'pixmap/tray/16/',访问权限错误。

检查pidgin_exe_rc.rc可以发现以下2条语句:
#define PIXMAPDIR "pixmaps/"
PIDGIN_ICON ICON PIXMAPDIR "pidgin.ico"

怀疑所用的windres版本不支持这种dir定义方式,改成:
PIDGIN_ICON ICON "pixmaps/pidgin.ico"

同理修改pidgin_dll_rc.rc,修改ICO路径修改为:

PIDGIN_TRAY_AVAILABLE_4BIT ICON  "pixmaps/tray/16/available_4bit.ico"

PIDGIN_TRAY_AWAY_4BIT         ICON  "pixmaps/tray/16/away_4bit.ico"

PIDGIN_TRAY_BUSY_4BIT          ICON  "pixmaps/tray/16/busy_4bit.ico"

PIDGIN_TRAY_XA_4BIT              ICON  "pixmaps/tray/16/extended-away_4bit.ico"

PIDGIN_TRAY_OFFLINE_4BIT     ICON  "pixmaps/tray/16/offline_4bit.ico"

PIDGIN_TRAY_CONNECTING_4BIT    ICON  "pixmaps/tray/16/connecting_4bit.ico"

PIDGIN_TRAY_PENDING_4BIT    ICON  "pixmaps/tray/16/message_4bit.ico"

PIDGIN_TRAY_INVISIBLE_4BIT  ICON  "pixmaps/tray/16/invisible_4bit.ico"

 

编译通过.

2. 编译debug版本
修改config.h,增加一行:
#define DEBUG

重新编译。

3. 安装文件
执行命令
make -f Makefile.mingw install
自动生成目录和安装文件
win32-install-dir

 

你可能感兴趣的:(windows,perl,Tcl,installer,gtk,variables)