准备工作:
1. VS2005
2. firefox 源码(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.8/source/)
3. 编译工具(http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.1.exe)
开始:
1. 将源码解压到指定路径(D:/DocumentSource/source/firefox-2.0.0.8-source/mozilla)
2. 运行下载的MozillaBuildSetup-1.1.exe, 指定路径(D:/mozilla-build)
3.写一个配置文件.mozconfig,文件内容
# . $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_MAKE_FLAGS="-j5"
mk_add_options MOZ_CO_MODULE="mozilla/tools/update-packaging"
mk_add_options MOZ_PACKAGE_NSIS=1
ac_add_options --enable-application=browser
ac_add_options --enable-update-channel=nightly
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-update-packaging
4. 在mozilla目录下先建立
dist/bin
dist/host/bin
在dist/bin目录下建立
xpidl.exe.manifest
xpt_link.exe.manifest
在dist/host/bin目录下建立
mkdepend.exe.manifest
文件内容全部如下:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
好了,现在可以运行D:/mozilla-build/start-msvc8.bat
执行下面的命令:
cd D:/DocumentSource/source/firefox-2.0.0.8-source/mozilla
./config
make
开始编译了。
等待10多分钟,编译完成。
在D:/DocumentSource/source/firefox-2.0.0.8-source/mozilla/dist/bin目录下会发现firefox.exe已经生成。
建立一个新文件firefox.exe.manifest 和firefox.exe同一个目录,文件内容:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="Firefox" type="win32"></assemblyIdentity><description>Firefox</description><dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity></dependentAssembly></dependency><ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"><ms_asmv3:security><ms_asmv3:requestedPrivileges>
<ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false">
</ms_asmv3:requestedExecutionLevel>
</ms_asmv3:requestedPrivileges></ms_asmv3:security></ms_asmv3:trustInfo></assembly>
好了,可以运行firefox.exe
:) !
在这里要谢谢Ferly,帮我解决关键问题。