您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: