最近突然想研究一下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. css-01

    1.CSS:级联样式表,设置页面的样式 2.css基本的语法:     属性:值; 3.CSS的引入   |-1.元素内容的引入:内联样式       <元素名 style="属性:值 ...

  2. Java List中的一个List选择选择移除方法

    记录: 第一个参数:传入需要处理的List 第二个参数:需要处理的参数在List中的标识符 第三个参数:在需要处理的参数中的开始位置 第三个参数:在需要处理的参数中的个数 List<String ...

  3. 【JAVA错误笔记】 - c3p0问题java.lang.NoClassDefFoundError:com.mchange.v2.ser.Indirector

    错误描述:java.lang.NoClassDefFoundError:com.mchange.v2.ser.Indirector 原因分析: 这是c3p0的一个错误信息,我们在下载 c3p0时候,z ...

  4. AndroidManifest.xml中的android:name是否带.的区别

    如果android:name所指示的类在定义的package="org.crazyit.ui"下,加不加点无所谓:但如果android:name指示的类在在package下的子包中 ...

  5. 如何使用SC命令添加删除服务

    1.如何删除服务 cmd然后再输入 sc delete "服务名称" 后,回车,双引号必须为英文符号. 2.添加服务 sc create ServiceName binPath= ...

  6. objective-c中是如何实现线程同步的?

    多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美.这篇文章主要从线程创建与启动.线程的同步与锁.线程的交互.线 ...

  7. asp.net WebService异步

    1 #region 异步测试 2 //委托 3 public delegate void PrintDelegate(string s); 4 [WebMethod] 5 public string ...

  8. javaScript笔记1

    一.通过 id 访问HTML元素,可以使用 document.getElementById(id) 方法. 例子: <body> <button id="mybtn&quo ...

  9. 03_天气查询_socket方式模拟_多线程方式

    [简述] 要重视Socket开发,企业后台服务特长使用Socket. 1.服务端要有可持续运行能力,保证线程一致在运行 2.并发处理能力,使用多线程 [工程截图] [WeatherRunner.jav ...

  10. Codevs 1800 假面舞会 2008年NOI全国竞赛

    1800 假面舞会 2008年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 一年一度的假面舞会又开始了,栋栋也 ...