他山框架V52 硬盘版 (Win 7 X64 Sp1开发环境)

 

为您打造一款开箱即用, 即插即用, 简单清爽的web/c++混合应用开发环境.

https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Gecko_Embedding_Basics
他这整的挺复杂,他山框架,驭繁为简,让您插windows, 插Linux, 插Mac, 即插即用, 快速开启Gecko Embed混合开发。


firefox各版本及源码下载网址:
https://ftp.mozilla.org/pub/firefox/releases/


话不多说,直奔主题:我们要如何编译firefox v52.
参考官方文档,一步一步来:https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions
我们从 https://ftp.mozilla.org/pub/mozilla/libraries/win32/ 下载MozillaBuild-2.1.0
下载安装后,我们运行"C:\tools\develop\mozilla-build2.1\start-shell-msvc2015.bat",如图:
你要确保机器上必须安装有Visual C++ 2015 Update 3及以上的vs,且cl.exe版本不得低于19.00.24213, 这个你可以通过命令行 "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe" /v来查询,相应的vs, 他山框架硬盘版都给你装好了, 直接用就行.

然后切换到firefoxv52源码目录 C:\src\ffv52.0_20181101\release\src


输入mozmake -f client.mk build 命令即可.

数小时编译成功后,会将结果生成在父级目录下objdir-droid文件夹中.以后每次修改firefox源码,可cd 到objdir-droid文件夹,
执行mozmake -j2即可.或者重新cd 到src目录, 执行mozmake -f client.mk build也行,就是编译的时间会长一点.

当然这一切我们都给您做好了, 我们预先生成好了firefox v52.9 debug版, release版.以及debug_ff_official版 (用于跟踪调试firefox), 如图:

大家直接用就行了.接下来,我们介绍,如何使用以上生成好的firefox sdk.

他山框架DEMO 工程,放在 C:\proj\他山界面演示v52.0.1_4 目录, 如图:


1. 以管理员权限运行,工程根目录下 "写入环境变量.bat".

其实就是设置环境变量,将FIREFOX52_DEBUG_OBJ指向C:\proj\他山界面演示v52.0.1_4\dist\debug, 将FIREFOX52_RELEASE_OBJ指向C:\proj\他山界面演示v52.0.1_4\dist\release,即可.而
C:\proj\他山界面演示v52.0.1_4\dist\debug里的内容, 来自C:\src\ffv52.9_20180921\debug\objdir-droid\dist
C:\proj\他山界面演示v52.0.1_4\dist\release里的内容,来自C:\src\ffv52.9_20180921\release\objdir-droid\dist
当然并不完全一样,因为我需要手工加入他山框架自己的组件,大家用比较工具比较下就知道了.细节太多,不做详述.
为什么要单独拷贝出来放在我们工程目录下呢,那是因为firefox的每次编译会清理objdir-droid/dist目录里的文件,而我们需要对个别文件做修改,不想被它随意删除掉。

一般来说,如果你想要使用自己修改的firefox,只需要替换掉xul.dll就行了.(根据firefox开源协议,改动firefox源码并对外发行后的程序,必须要公开修改后的firefox代码).他山框架之于firefox, 如同cef之于chrome,并不是非要改内核的代码,只是提供一个桥梁,暴露内核接口即可.

2.重开VS,打开"C:\proj\他山界面演示v52.0.1_4\他山界面演示v52.sln"即可完成编译.
生成的Debug版为:  "C:\proj\他山界面演示v52.0.1_4\dist\debug\bin\xulApp_4.exe"
生成的Release版为:"C:\proj\他山界面演示v52.0.1_4\dist\Release\bin\xulApp_4.exe"

3.因为依赖项比较多,我们特意制作了打包工程,一键打包程序及其所有依赖项至"C:\proj\他山界面演示v52.0.1_4\发布\OHUI_vs2015sp3_52.0.1_x64.zip", 目前,仅打包release版.

但是该压缩包,没打包WebUI及其子目录文件,你需要手工将cfg.ini中指定的html及资源打包进去.
打包工程,会使用C:\proj\他山界面演示v52.0.1_4\发布\tmp做临时目录,所以你想添加或修改压缩包内容的话,直接改该临时目录下的文件,然后手工打包tmp目录下所有即可。
该压缩包,会自动打包所有依赖项,可保,在xp,win7 32/64及以上windows系统正确运行.点此下载硬盘版他山框架的demo (31MB): https://otfiles.otherhill.com:12321/uploads/ohui/OHUI_vs2015sp3_52.9_x32.rar

debug版会生成调试文件,这样就能在vs中,跟踪和调试firefox内核源码.步骤是:
1. 编译好xulapp_4 debug版工程:


2.修改工程调试参数。指向 "C:\src\ffv52.9_20180921\debug_ff_official\objdir-droid\dist\bin\firefox.exe"


3. 在VS中打开 C:\src\ffv52.9_20180921\debug_ff_official\src\browser\app\nsBrowserApp.cpp 文件。并于int main()处下断点,
按F5, 待firefox启动后,断点成功触发:

细心的朋友会发现,我们用的是C:\src\ffv52.9_20180921\debug_ff_official目录,而不是C:\src\ffv52.9_20180921\debug,
如前文所讲,我们在C:\src\ffv52.9_20180921\下为大家准备好了三个版本,debug, release, debug_ff_official

前两者用于他山框架使用,最后一个用于跟踪调试firefox,
之所以要多加一个debug_ff_official,是因为官方的debug版程序及所有依赖项,都是用-MD参数生成的,能成功生成可运行的firefox.exe,但他山框架的debug版,必须是用-MDd生成的sdk,如果我们试图用-MDd生成firefox,会造成生成的firefox无法正常运行.

双击打开 "C:\src\ffv52.9_20180921\debug\src\ffv52.sln" 或 "C:\src\ffv52.9_20180921\debug_ff_official\src\ffv52.sln", 即能使用vs来查看和编辑源码.修改源码后,如前文所述,打开mozbuild控制台 ("C:\tools\develop\mozilla-build2.1\start-shell-msvc2015.bat"),切换到C:\src\ffv52.9_20180921\debug\objdir-droid 或 C:\src\ffv52.9_20180921\debug_ff_official\objdir-droid 目录, 输入mozmake执行编译即可.


另外,我们提供一套,他山极简GUI DEMO工程及源码,如图:
我们的demo, 可运行于xp, win7+ 32/64系统.
Demo下载(73KB) : https://otfiles.otherhill.com:12321/uploads/file/20210629/他山极简GUI.rar

该工程源码,与他山框架没任何关系,该极简DEMO, 是使用纯WIN SDK开发,且不依赖任何第三方库的一套自研界面工程,
该工程适用于界面需求简单,但需要生成极小体积的界面程序.他山极简GUI,生成的应用体积非常小,但是具备,窗口拖拽,控件缩放与对齐,xp兼容,32/64兼容,等最基本的界面需求.
默认的win sdk做窗口,没有控件自动缩放,自动对齐功能,想要有这种基本的功能,就必需要装一堆库,或.net,或Qt, 开发者麻烦,用户痛苦,诸多依赖项,外加版本兼容性,没必要.因为我们开发应用,经常需要用此开发此类精悍小巧,轻量级的应用,所以放到他山硬盘版中, 免费奉献给大家.
我们的控件缩放与对齐,非常灵活,可以做到随心所欲,但是如果想熟练使用,需要熟读源码.你可以参看demo与源码,来设计自己的控件缩放和对齐.未来有时间,我可能会出此相关开发文档.

提供的开发辅助工具:

wjsx.exe修改文件时间属性,已被安装在右键菜单.
踱步狼注释清理,已被安装在右键菜单.
delVcTmp.reg 清理文件夹中vc临时文件,已被安装在右键菜单.
CmdContextMenu.reg 在指定文件夹打开dos窗口,已被安装在右键菜单.
RegexBuddy.exe超级好用的正则验证工具.

提供他山框架VS2015工程向导.双击Install.bat,执行自动安装,详见:https://bbs.otherhill.com/index.php/topic/show/45

暂未找到卸载的方式,且不是特别必要,所以大家是否安装,请随意.

vs2015 激活码:  https://www.baidu.com/s?wd=%E5%AE%89%E8%A3%85%E4%B9%8B%E5%89%8D%E9%A6%96%E5%85%88%E4%B8%8B%E8%BD%BDVS2015%2C%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80&pn=80&oq=%E5%AE%89%E8%A3%85%E4%B9%8B%E5%89%8D%E9%A6%96%E5%85%88%E4%B8%8B%E8%BD%BDVS2015%2C%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80
 https://www.cnblogs.com/wanghongyun/p/6130057.html 用企业版的激活码
win7激活工具: 百度 Oem7F7.exe, 不激活,也不影响开发的哈.

他山框架DEMO,提供debug版与release版, 如非必要,直接用release版就够了,release版一样能调试和下断点跟踪,只是不能跟踪到firefox内核源码.debug版可以.

他山框架是一个肩膀,让您踩踏其上, 登堂入室,快速开启firefox内核研究与使用之旅.


posted on 2021-07-06 13:24  otherhill  阅读(262)  评论(0编辑  收藏  举报