最近突然想研究一下thunderbird的实现,于是在WIN2K3下对其进行了系列的编译,特将编译的一些心得与大家共享。
其实编译过程已经非常简单了,本文以VC8 ( VISUAL STUDIO 2005)来进行编译。
进行如下准备。
thunderbird的项目地址是 http://www.mozilla.org/projects/thunderbird

1、下载源代码,可以用CVS下,见http://developer.mozilla.org/en/docs/Download_Mozilla_Source_Code
也可以到http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/ 下载
 本人是从http下载的2.0.0.6
 这是一个已经正式发布的版本,因为CVS中下来的代码合并后经常编译不通过,建议你如果是第一次编译,也从http上下。
下载完之后进行解压再解压,如,解压到
d:\mozilla目录下。注意thunderbird的那个目录名称一定要是名为mozilla的,否则编译会通不过。

然在mozilla目录下建立一个文件,名为 mozconfig

# This file specifies the build flags for Thunderbird.  You can use it by adding:
#  . $topsrcdir/mail/config/mozconfig
# to the top of your mozconfig file.

mk_add_options MOZ_CO_PROJECT=mail
ac_add_options --enable-application=mail

2、下载winmg32。
可以到http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.1.exe
下载完之后,安装到C:\mozilla-build 下,其实也就是它默认的目录,建议不要改动

3、运行C:\mozilla-build\start-msvc8.bat
此时会运行一个模拟的shell里面转到thunderbird的源码目录。

cd d:\mozilla

make -f client.mk build
运行一段时间之后,系统会报一个找不到msvcr80.dll

如编译xpt_link.exe时,提示找不到。
则把
d:\mozilla\xpcom\typelib\xpidl\xpidl.exe.manifest
复制到d:\mozilla\dist\bin中,重命名为xpt_link.exe.manifest

如果找不到那个manifest文件,不防自己建xpt_link.exe.manifest文件,内容如下

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

再进入shell中,进行编译make -f client.mk build
然后进行漫长的等待,编译过程可能会很顺利,但我编译的时候,还出现了两个错误。
一个是 wabTags.h中,在注释处有unicode字符,如果你也碰到这个提示,就打开这个文件,把一些?与中文乱码的注释都删除了。
另一个是wabcdef.h中有一个重命名,那个好办,把相应的那三行给注释掉,继续编译,就好了。

http://www.cnblogs.com/qiubole/archive/2007/08/28/872453.html

如何在win下编译thunderbird的更多相关文章

  1. php WIN下编译注意问题

    下载VC2012,安装打开CMD 须运行 vcvars32.bat (初始化VC编译环境) 下载PHP WIN编译包:http://windows.php.net/downloads/php-sdk/ ...

  2. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  3. 《Lucene in Action第二版》学习总结---如何在Windows下编译luceneinAction2Edition源码包

    1. 下载此源码包,位置是: www.manning.com/hatcher3,得到:lia2e.tar.gz,然后解压缩得到目录:lia2e,为了以后能辨识,我将此目录改名为:luceneinAct ...

  4. 如何在win下安装dlib的whl文件(Anaconda方式)

    问题描述 由于作业需要用到dlib的人脸检测函数,所以尝试安装了一下dlib.顺便贴上dlib的下载网址dlib下载. 但当我直接输入pip install dlib-19.7.0-cp36-cp36 ...

  5. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  6. 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

    PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plai ...

  7. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  8. Windows下编译memcached-1.4.5(32bit和64bit)

    1.简介 Memcached 是一个高性能的分布式内存对象缓存系统.它通过将数据缓存在内存中来减少对数据库和文件系统的访问,减轻数据库及操作系统的负担,提高应用系统的速度. 目前已经很多系统应用了me ...

  9. Centos7 下编译 Openjdk8

    本文主要介绍如何在 Centos7 下编译 Openjdk8 源码,<深入理解java虚拟机>第二版网上好多 openjdk7 的帖子,编译 jdk8 和 7 还是有些差别的,比如大家经常 ...

随机推荐

  1. 使用modelsim仿真DDR3时编译出错的解决方法

    Modelsim 10.1c release note sates as : Product Changes in 10.1c Release 10.1b introduced a new error ...

  2. 在ModelSim波形图中以参数名显示变量

    在ModelSim波形图中以参数名显示变量 在使用Verilog HDL编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示,但当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进 ...

  3. Windows 7 SP1 x64 旗舰版 微软官方安装U盘的制作

    [ 本主题由 中山艹泥喵 于 2013-08-20 23:14:33 设为精华1,原因:不错~ ] 最后由 风中枯萎 于 2015-12-15 17:44:15 修改 安装Windows 7操作系统主 ...

  4. (转)Ilist 和list的区别归纳总结

    常见问题: Ilist <> 本身只是一个泛型接口, 既然是接口当然不能实例化,只能用如下方法 IList <Class1> IList11 =new List <Cla ...

  5. sql 游标循环遍历

    写存储过程的时候碰到一个需要对数据进行遍历循环操作的问题,最后通过游标解决了,感觉很适用. declare @level varchar() declare @uid varchar() declar ...

  6. ACM——大数相加

    大数加法 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:2085            测试通过:543 描述 求两个非负整数( ...

  7. Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法

    Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法 这篇笔记将介绍如何使用Ext.Net GridPanel 中使用Sorter. 默认情况下,Ext.Net GridP ...

  8. OC 知识点回顾

    /* 字符串: NSString  不可变字符串  字符串对象的内容不能修改,字符串的指针可以改变 NSMutableString 可变字符串   可以修改字符串对象的内容,继承自NSString , ...

  9. mysql笔记之集群

    1.主从配置 #主从都要加入以下配置如下 [mysqld] log-bin=mysql-bin #主从要不一样 server-id=222 #在主上建立一个用户给从的用 GRANT REPLICATI ...

  10. jQuery表格操作

    $("#tableid tr:gt(0)").each(function(i){ $(this).children("td").each(function(j) ...