如何在win下编译thunderbird
最近突然想研究一下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的更多相关文章
- php WIN下编译注意问题
下载VC2012,安装打开CMD 须运行 vcvars32.bat (初始化VC编译环境) 下载PHP WIN编译包:http://windows.php.net/downloads/php-sdk/ ...
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- 《Lucene in Action第二版》学习总结---如何在Windows下编译luceneinAction2Edition源码包
1. 下载此源码包,位置是: www.manning.com/hatcher3,得到:lia2e.tar.gz,然后解压缩得到目录:lia2e,为了以后能辨识,我将此目录改名为:luceneinAct ...
- 如何在win下安装dlib的whl文件(Anaconda方式)
问题描述 由于作业需要用到dlib的人脸检测函数,所以尝试安装了一下dlib.顺便贴上dlib的下载网址dlib下载. 但当我直接输入pip install dlib-19.7.0-cp36-cp36 ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plai ...
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- Windows下编译memcached-1.4.5(32bit和64bit)
1.简介 Memcached 是一个高性能的分布式内存对象缓存系统.它通过将数据缓存在内存中来减少对数据库和文件系统的访问,减轻数据库及操作系统的负担,提高应用系统的速度. 目前已经很多系统应用了me ...
- Centos7 下编译 Openjdk8
本文主要介绍如何在 Centos7 下编译 Openjdk8 源码,<深入理解java虚拟机>第二版网上好多 openjdk7 的帖子,编译 jdk8 和 7 还是有些差别的,比如大家经常 ...
随机推荐
- Topself
TopShelf简介 个人理解:开源.跨平台的服务框架.提供一种方式以控制台编写windows服务,与windows服务相比,目前只发现便于调试. 官网网站:http://docs.topshelf- ...
- js calendar橙色日期选择器代码
原文出处 http://files.cnblogs.com/files/quixon/date_js.rar
- mybatis错误:Invalid bound statement (not found)
解决办法是去看看mybatis配置里面的可能因为配置为什么格式文件解析不到 <property name="mapperLocations" value="clas ...
- 理解C#中的“静态”
一.静态成员 1.通过static关键字修饰,是属于类,实例成员属于对象,在这个类第一次加载的时候,这个类下面的所有静态成员会被加载. 2.静态成员只被创建一次,所以静态成员只有一份,实例成员有多少个 ...
- 将文件的编码格式转换为utf-8
背景:项目中有一些其他部门发过来的代码,编码格式有utf-8,也有GBK,而且是散乱在各个文件夹中的,处理起来十分的麻烦.我想把他们都转成统一的utf-8的格式.代码很简单,直接上代码好了. impo ...
- WebSocket 实战
http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/ 本文介绍了 HTML5 WebSocket 的由来,运作机制及客户端和服务端的 AP ...
- Javascript三元条件运算符
今天谈一个小知识点,三元运算符.三元运算,顾名思义会有三个要素,表达式的大致组成为condition ? expr1 : expr2:一个语句加两个表达式.问号之前为判断语句.如果为真,则执行第一个表 ...
- javascript 基础2第12节
1. <html> <head> <title>javascript基础</title> </head> <body> 1.Nu ...
- JavaScript使用技巧
使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用 ...
- Mysql备份数据库的一种方法
今天添加了一个数据库自动备份的模块,mysql数据备份的方法有很多,可以对单个数据库备份,可以多个数据库备份,也可以对某一个表进行备份,可以只备份数据库的结构不备份数据,可以根据需要做不同处理,正好现 ...