编译ThunderBird

来源:互联网 发布:电脑网络加速器 编辑:程序博客网 时间:2024/06/06 18:33
在CentOS-x86-64系统上编译了一个ThunderBird(后简称TB),有些心得,记录如下。
(1)安装TB要求的库和头文件,主要有
     libXt-devel libXft-devel libXrender-devel freetype-devel gtk+-devel glib-devel fontconfig-devel
     注意这里安装的都是devel包,此种包除了包含库文件外,还包含相应的头文件。

     在安装过程中,发现一个奇怪的事情。有的库安装了带版本信息的库文件如libLIB.so.1.009,
     却没有做一个相应的符号链接。 如果你也发现这种情形,就要手动创建符号链接libLIB.so。

(2)设置.mozconfig;运行configure脚本
     具体方法请参考 http://developer.mozilla.org/en/Configuring_Build_Options

     有时候,configure脚本会报错:一些库找不到,而事实上你已经安装了这些库和头文件。
     这时可以尝试设置环境变量PKG_CONFIG_PATH到系统相应的位置/usr/lib64/pkgconfig

     不要设置--enable-debug。有时候这个选项在x64下会带来一些链接错误。就是一些symbol无法重定位。

(3)修改config/autoconfig.mk
     这个文件(我们姑且称它为Makefile头文件)包含TB在编译过程中递归调用的所有Makefile的几乎所有共用变量。
     在x64底下,TB的configure脚本不够完美,它在这个Makefile头文件中,会错误的把一些系统库链接地址定位为
     /usr/lib而不是/usr/lib64. 把这些都一一修改过来。
     修改方法很简单,如果有-L/usr/lib 字符串存在,就把它改做 -L/usr/lib64。
    
     可能还需要在XT_LIBS 中增加 -lXt,如果它没有在XT_LIB中出现的话。

     另外,还可能缺失 -lX11 的选项。你需要手动增加这个选项。
    一个省心的方法是,把它加到autoconfig.mk中所有的 xxx_LIBS 变量的后面

(4)开始编译,make
     如果一切顺利的话,编译将顺利完成。