larntin |
2007-08-02 09:50 |
Gecko的嵌入QT4.3.0的开发得第一步:FireFox在win环境下的编译
由于比较忙,有一段时间没有来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 |
|