FireFox2.0.0.5在Windows的编译部分(需要cygwin,并且官方有编译脚本)
2016-10-13 17:58
465 查看
由于比较忙,有一段时间没有来QTCN了,最近在看Gecko嵌入第三方应用程序的开发,已经突破了第一道关卡,FF2.0.0.5在Windows的编译部分,正准备研究FF下面winEmbed的例子的时候,发现是VC编译的(我使用的vs2003),在自己建立win控制台工程的基础上一步一步添加文件编译选项还是未能通过,网上也有人说用VC只能编译通过连接不成功,看到这个贴
http://www.qobject.com/htm_data/46/0706/3726.html
于是就把自己编译FireFox的过程贴出来,供感兴趣的朋友一起研究。
如果有错请指出,欢迎交流。
方法一:
(a)使用Cygwin编译(下载地址:http://www.cygwin.com/是一个网络安装客户端,选择好你要下载的文件)。
编译需要以下这些文件:
ash
coreutils
diffutils
findutils
grep
sed
gawk
unzip
zip
perl
gawk
make
patchutils
最好一次选全。
(b) 将C:\cygwin\bin\linker.exe改名为glinker.exe
在系统的环境变量里添加MOZ_TOOLS = C:\moztools
把 c:\cygwin\bin 放在 c:\windows\system32 之前
在PATH加上%MOZ_TOOLS%\bin一句
(c)编译的过程
打开C:\cygwin\Cygwin.bat文件添加如下代码:
复制代码
@echo off
rem --- 基本的设置
SET MOZ_TOOLS=C:\moztools
SET GLIB_PREFIX=C:\moztools
SET LIBIDL_PREFIX=C:\moztools
SET MINGWBASE=C:\Dev-Cpp
SET CYGWINBASE=C:\cygwin
SET INCLUDE=
SET LIB=
SET PATH=C:\;C:\windows\system32;C:\windows;C:\windows\system32\wbem
rem --- 设置Cygwin路径
SET PATH=%CYGWINBASE%\bin;%PATH%
rem --- 掉用另一个bat文件,设置 VC7 编译环境变量
call "C:\cygwin\guess-msvc.bat"
if "%VC71DIR%"=="" (
ECHO "Microsoft Visual C++ version 7.1 was not found. Exiting."
pause
EXIT /B 1
)
call "%VC71DIR%\Bin\vcvars32.bat"
rem --- 添加 glib/libidl
SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin
SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE%;%MINGWBASE%\include
SET LIB=%GLIB_PREFIX%\lib;%LIB%
rem -- moztools 添加在 glib/libIDL 之后
SET PATH=%PATH%;%MOZ_TOOLS%\bin
rem – bat文件中原来的内容
C:
chdir C:\cygwin\bin
bash --login –i
guess-msvc.bat文件内容:
复制代码
REM -*- Mode: fundamental; tab-width: 8; indent-tabs-mode: 1 -*-
@ECHO OFF
set CYGWIN=
if not defined MOZ_NO_RESET_PATH (
set PATH=%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem
)
SET INCLUDE=
SET LIB=
SET MSVCROOTKEY=HKLM\SOFTWARE\Microsoft\VisualStudio
SET MSVC6KEY=%MSVCROOTKEY%\6.0\Setup\Microsoft Visual C++
SET MSVC71KEY=%MSVCROOTKEY%\7.1\Setup\VC
SET MSVC8KEY=%MSVCROOTKEY%\8.0\Setup\VC
SET MSVC8EXPRESSKEY=HKLM\SOFTWARE\Microsoft\VCExpress\8.0\Setup\VC
REM First see if we can find MSVC, then set the variable
REM NOTE: delims=<tab><space>
REM NOTE: run the initial REQ QUERY outside of the if() to set ERRORLEVEL correctly
REG QUERY "%MSVC6KEY%" /v ProductDir >nul 2>nul
if "%VC6DIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC6KEY%" /v ProductDir') DO SET VC6DIR=%%B
)
)
REG QUERY "%MSVC71KEY%" /v ProductDir >nul 2>nul
if "%VC71DIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC71KEY%" /v ProductDir') DO SET VC71DIR=%%B
)
)
REG QUERY "%MSVC8KEY%" /v ProductDir >nul 2>nul
if "%VC8DIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC8KEY%" /v ProductDir') DO SET VC8DIR=%%B
)
)
REG QUERY "%MSVC8EXPRESSKEY%" /v ProductDir >nul 2>nul
if "%VC8EXPRESSDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC8EXPRESSKEY%" /v ProductDir') DO SET VC8EXPRESSDIR=%%B
)
)
REM Look for Installed SDKs:
SET SDKROOTKEY=HKLM\SOFTWARE\Microsoft\MicrosoftSDK\InstalledSDKs
SET SDK2003SP1KEY=%SDKROOTKEY%\8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3
SET SDK2003SP2KEY=%SDKROOTKEY%\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1
REG QUERY "%SDK2003SP2KEY%" /v "Install Dir" >nul 2>nul
if "%SDKDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP2KEY%" /v "Install Dir"') DO SET SDKDIR=%%B
)
)
REG QUERY "%SDK2003SP1KEY%" /v "Install Dir" >nul 2>nul
if "%SDKDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP1KEY%" /v "Install Dir"') DO SET SDKDIR=%%B
)
)
ECHO Visual C++ 6 directory: %VC6DIR%
ECHO Visual C++ 7.1 directory: %VC71DIR%
ECHO Visual C++ 8 directory: %VC8DIR%
ECHO Visual C++ 8 Express directory: %VC8EXPRESSDIR%
ECHO SDK directory: %SDKDIR%
进入mozilla的目录输入./configure –enable-application=browser –disable-installer
成功之后就make
注意:但这里编译快结束的时候会出现错误,不知道为什么,如果你知道请指出。
方法二:
从这里下载http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.1.exe
默认安装在C:/mozilla-build下
进入C:\mozilla-build执行start-msvc71.bat
输入configure –enable-application=browser
等configure成功之后,输入make
等大约30-60分钟后编译成功
进入C:\mozilla\dist\bin执行firefox.exe
http://www.qtcn.org/bbs/read-htm-tid-8646.html
http://www.qobject.com/htm_data/46/0706/3726.html
于是就把自己编译FireFox的过程贴出来,供感兴趣的朋友一起研究。
如果有错请指出,欢迎交流。
方法一:
(a)使用Cygwin编译(下载地址:http://www.cygwin.com/是一个网络安装客户端,选择好你要下载的文件)。
编译需要以下这些文件:
ash
coreutils
diffutils
findutils
grep
sed
gawk
unzip
zip
perl
gawk
make
patchutils
最好一次选全。
(b) 将C:\cygwin\bin\linker.exe改名为glinker.exe
在系统的环境变量里添加MOZ_TOOLS = C:\moztools
把 c:\cygwin\bin 放在 c:\windows\system32 之前
在PATH加上%MOZ_TOOLS%\bin一句
(c)编译的过程
打开C:\cygwin\Cygwin.bat文件添加如下代码:
复制代码
@echo off
rem --- 基本的设置
SET MOZ_TOOLS=C:\moztools
SET GLIB_PREFIX=C:\moztools
SET LIBIDL_PREFIX=C:\moztools
SET MINGWBASE=C:\Dev-Cpp
SET CYGWINBASE=C:\cygwin
SET INCLUDE=
SET LIB=
SET PATH=C:\;C:\windows\system32;C:\windows;C:\windows\system32\wbem
rem --- 设置Cygwin路径
SET PATH=%CYGWINBASE%\bin;%PATH%
rem --- 掉用另一个bat文件,设置 VC7 编译环境变量
call "C:\cygwin\guess-msvc.bat"
if "%VC71DIR%"=="" (
ECHO "Microsoft Visual C++ version 7.1 was not found. Exiting."
pause
EXIT /B 1
)
call "%VC71DIR%\Bin\vcvars32.bat"
rem --- 添加 glib/libidl
SET PATH=%PATH%;%GLIB_PREFIX%;%GLIB_PREFIX%\bin
SET INCLUDE=%GLIB_PREFIX%\include;%INCLUDE%;%MINGWBASE%\include
SET LIB=%GLIB_PREFIX%\lib;%LIB%
rem -- moztools 添加在 glib/libIDL 之后
SET PATH=%PATH%;%MOZ_TOOLS%\bin
rem – bat文件中原来的内容
C:
chdir C:\cygwin\bin
bash --login –i
guess-msvc.bat文件内容:
复制代码
REM -*- Mode: fundamental; tab-width: 8; indent-tabs-mode: 1 -*-
@ECHO OFF
set CYGWIN=
if not defined MOZ_NO_RESET_PATH (
set PATH=%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem
)
SET INCLUDE=
SET LIB=
SET MSVCROOTKEY=HKLM\SOFTWARE\Microsoft\VisualStudio
SET MSVC6KEY=%MSVCROOTKEY%\6.0\Setup\Microsoft Visual C++
SET MSVC71KEY=%MSVCROOTKEY%\7.1\Setup\VC
SET MSVC8KEY=%MSVCROOTKEY%\8.0\Setup\VC
SET MSVC8EXPRESSKEY=HKLM\SOFTWARE\Microsoft\VCExpress\8.0\Setup\VC
REM First see if we can find MSVC, then set the variable
REM NOTE: delims=<tab><space>
REM NOTE: run the initial REQ QUERY outside of the if() to set ERRORLEVEL correctly
REG QUERY "%MSVC6KEY%" /v ProductDir >nul 2>nul
if "%VC6DIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC6KEY%" /v ProductDir') DO SET VC6DIR=%%B
)
)
REG QUERY "%MSVC71KEY%" /v ProductDir >nul 2>nul
if "%VC71DIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC71KEY%" /v ProductDir') DO SET VC71DIR=%%B
)
)
REG QUERY "%MSVC8KEY%" /v ProductDir >nul 2>nul
if "%VC8DIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC8KEY%" /v ProductDir') DO SET VC8DIR=%%B
)
)
REG QUERY "%MSVC8EXPRESSKEY%" /v ProductDir >nul 2>nul
if "%VC8EXPRESSDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%MSVC8EXPRESSKEY%" /v ProductDir') DO SET VC8EXPRESSDIR=%%B
)
)
REM Look for Installed SDKs:
SET SDKROOTKEY=HKLM\SOFTWARE\Microsoft\MicrosoftSDK\InstalledSDKs
SET SDK2003SP1KEY=%SDKROOTKEY%\8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3
SET SDK2003SP2KEY=%SDKROOTKEY%\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1
REG QUERY "%SDK2003SP2KEY%" /v "Install Dir" >nul 2>nul
if "%SDKDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP2KEY%" /v "Install Dir"') DO SET SDKDIR=%%B
)
)
REG QUERY "%SDK2003SP1KEY%" /v "Install Dir" >nul 2>nul
if "%SDKDIR%"=="" (
IF %ERRORLEVEL% EQU 0 (
FOR /F "tokens=3* delims= " %%A IN ('REG QUERY "%SDK2003SP1KEY%" /v "Install Dir"') DO SET SDKDIR=%%B
)
)
ECHO Visual C++ 6 directory: %VC6DIR%
ECHO Visual C++ 7.1 directory: %VC71DIR%
ECHO Visual C++ 8 directory: %VC8DIR%
ECHO Visual C++ 8 Express directory: %VC8EXPRESSDIR%
ECHO SDK directory: %SDKDIR%
进入mozilla的目录输入./configure –enable-application=browser –disable-installer
成功之后就make
注意:但这里编译快结束的时候会出现错误,不知道为什么,如果你知道请指出。
方法二:
从这里下载http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.1.exe
默认安装在C:/mozilla-build下
进入C:\mozilla-build执行start-msvc71.bat
输入configure –enable-application=browser
等configure成功之后,输入make
等大约30-60分钟后编译成功
进入C:\mozilla\dist\bin执行firefox.exe
http://www.qtcn.org/bbs/read-htm-tid-8646.html
相关文章推荐
- Windows下Linux开发环境设置--安装Cygwin及交叉编译工具链
- Firefox - 附加软件 - Firebug - Script脚本视图 - 使用step into, step over等按钮需要先设置javascript脚本的断点
- windows下eclipse集成cygwin编译android_NDK
- windows 编译 python脚本为exe文件
- windows平台 vs2005 boost库安装编译(文中绿色部分是自己试验的结果)
- Windows下Linux开发环境设置(二)--安装Cygwin及交叉编译工具链
- Windows用cygwin和mingw编译librecad
- 在windows下利用cygwin+Eclipse+NDK构建交叉编译环境攻略
- Windows下编译Firefox
- android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT 自动编译
- Firefox - 附加软件 - Firebug - Script脚本视图 - 使用step into, step over等按钮需要先设置javascript脚本的断点
- WINDOWS ORACLE备份脚本并且压缩为RAR格式
- Windows+cygwin下构造arm-linux交叉编译环境最简单的方法
- windows下eclipse集成cygwin编译android_NDK
- Windows服务程序[解决部分智能自动的需要]
- Linux的开发利器,Kylix (我决定用它,因为涉及到复杂数据库操作,并且需要编译后的效率)
- firefox 3.0 在 windows 下的编译
- Windows下使用VIM&Cygwin,搭建Mainframe开发环境(六)---用awk/sed合并PLI/Cobol编译结果
- 如何在windows bat脚本中调用Cygwin并执行命令?
- protobuf windows java 环境搭建(编译出protobuf需要的jar包,解决编译时OutOfMemory的问题)