官方网站建设需要哪个部门审批,最新网站开发工具,深圳施工勘察建设局网站,网站建设礻首选金手指这是一篇很好的文章#xff0c;很多开发者其实并没有搞清楚这个问题#xff1a;在何时该用什么方式编译WinCE 导致走了很多弯路#xff0c;也包括我自己 感谢作者写了这篇文章 这么好的文章#xff0c;我想应该翻译过来给大家 在何时该用什么方式编译WinCE 在新闻组里很多开发者其实并没有搞清楚这个问题在何时该用什么方式编译WinCE 导致走了很多弯路也包括我自己 感谢作者写了这篇文章 这么好的文章我想应该翻译过来给大家 在何时该用什么方式编译WinCE 在新闻组里大家总是会问这样一个问题“我做了改动为什么没合到我的镜像里面”或者“我在platform.reg里面改动了注册表但是最后发现改动没有体现在设备中”。 其实这些问题的根源都是与编译相关的。我们必须理解整个编译系统从而准确的了解什么时候该如何编译。发表这篇博文的目的就是为了让你搞清楚”什么时候该如何编译”这个问题 首先第一步也是最重要的一步就是从你的Platform Builder的菜单中删除两个选项”Build and Sysgen”和”Rebuild and Clean Sysgen”。这两个命令会编译整个系统包括在”PUBLIC”和“PRIVATE”目录下的所有源代码。对于一般的系统开发者这两个命令根本用不着。不是微软的CE开发组成员的话你是没有全部源代码的。整个系统重新编译也许可以通过但是这样会覆盖掉你装过的所有QFE。这些QFE通常包含了更新的二进制文件有时候也会有更新的源代码。在重新编译整个系统之后你迟早会碰到一些奇怪的bug并且这些bug非常难解决或者到最后成为不可能解决的bug。一旦你执行了”(Re)Build and (Clean) Sysgen”之后想再恢复到未执行前的状态就不可能了。唯一的办法就是把WinCE全部卸载然后重装。装的时候别忘了把QFE也重装一遍。 现在大家知道为什么我总是在新闻组里呼吁“千万别做BUILD AND SYSGEN” 2011-7-28 10:16:40 上传 下载附件 (21.35 KB) 原始的” Advanced Build Commands ”菜单步骤12011-7-28 10:16:41 上传 下载附件 (20.2 KB) 在工具栏上点击鼠标右键然后选择” Customize...”步骤22011-7-28 10:16:42 上传 下载附件 (31.12 KB) 点击菜单” Build”进入子菜单”Advanced Build Commands”然后右击”Build and Sysgen”选择” Delete”步骤32011-7-28 10:16:43 上传 下载附件 (12.93 KB) 同理删除” Rebuild and Clean Sysgen”步骤42011-7-28 10:16:44 上传 下载附件 (20.31 KB) 关闭” Customize”窗口”Advanced Build Commands”下面现在应该只有4个选项了: [Sysgen], [Clean Sysgen], [Build Current BSP and Subprojects] 以及 [Rebuild Current BSP and Subprojects]如果你仍然在使用Platform Builder for Windows CE 5.0那么步骤也是差不多的。只不过不是” Build”菜单下而是在” Build OS”菜单下而且选项没有子菜单了全部列在” Build OS”下面。我知道有些开发者会改动PUBLIC和PRIVATE目录下的代码这时候就需要使用”Build and sysgen”来把你对内核的改动编译进去。但是这样做的最终结果仍然会如前面一样把你的CE搞乱。所以如果你需要改动PUBLIC或者PRIVATE目录下的代码正确的做法是Clone这些代码。Clone代码在大多数情况下指的并不是简单的Copy。首选需要拷贝你要修改的源代码到你的BSP目录下修改sources文件以编译出dll文件而不是lib文件这样就搞定了。我知道这听起来很容易但实际上是有许多步骤要做的。先把这个问题放到一边让我们来看看在什么情况下我们该用什么编译命令• 创建一个新的OS Design或者添加了一套新的编译配置到现有的OS DesignSysgen (Build Solution)新的OS Design或者一套新的编译配置在建立的时候输出文件夹都是空的所以你需要完整的sysgen整个系统。整个编译过程比较漫长但是幸运的是我们不需要经常这样做。• 更改平台选项 Make image2011-7-28 10:16:46 上传 下载附件 (17.97 KB) 如果你更改了平台选项配置如IMGNOKITL, IMGNODEBUGGER, IMGPROFILER你只需要执行Make Image即可• 在BSP中修改驱动的源代码Build 驱动然后 Make Image如果你修改了驱动的源代码只需要编译驱动(WINCEREL必须要设置为1不过1是默认值除非你手动修改过否则没必要关注)并且执行一下makeimg就可以了。如果你仅仅想调试一下编译好的驱动你只要把这个驱动的dll添加到Release Directory Modules列表下(在Tools菜单中)并且重新启动设备(或者在设备端重新加载这个驱动)而不用执行makeimg或者把系统下载到设备上。(译者注这里说的这种调试方法一般情况下我们是用PC通过KITL连接设备然后启动过程中Release Directory Modules下列出的文件会自动传输到设备上替换设备上原有的文件同时支持断点调试等。就是我们说的KITL调试。)编译驱动的方法非常简单在IDE(集成开发环境)中右击驱动选择Build 命令或者在命令行模式下进入到这个驱动的目录执行命令build。• 在BSP中修改了多个源代码文件 Build BSP然后 Make Image这是防止你遗漏了什么没有编译的安全做法。编译这个BSP的方法是在IDE中右击PLATFORM\BSP文件夹然后选择Build或者在命令行模式下进入BSP的根目录执行命令build。• 修改了platform.reg, bib, dat或者db文件: Sysgen BSP, Copy Files to Release Directory, Build All Projects 然后 Make Image看起来步骤很多其实用不了你几分钟的时间。如果你修改了platform.*系列的文件我们需要确认这些修改过的文件都被拷贝到了FLATRELEASEDIR目录(就是工程的Release目录)。最后一个步骤就是清除所有项目的二进制文件。所以我们需要编译所有的项目(Build All Projects)以确认这些二进制文件和配置被拷贝到了FLATRELEASEDIR目录。最后我们执行Make Image就可以了。现在你的注册表修改已经被合入到你的系统镜像文件了(你可以检查reginit.ini文件进行确认注册表文件中后面出现的项会覆盖前面出现的相同项)。(译者注这里所说的项目应该是指你在整个工程文件下面建立的子项目)• 在BSP中修改了一些源代码并且修改了platform.*系列的文件 Build and Sysgen BSP, Copy Files to Release Directory, Build All Projects 然后Make Image与上面唯一的区别就是你需要先编译一下BSP源代码以合入你对BSP的修改。• 修改了workspace的配置如增加或者删除某个系统组件 Sysgen (Build solution)对于大多数系统组件简单的一个Sysgen就可以了。有些系统组件(比如把系统的注册表组件从RAM based registry 修改到 Hive based Registry)就需要执行Clean Sysgen了。这确实需要不少时间去编译。Sysgen操作可以在IDE中右击当前workspace选择Advanced Build Commands-Sysgen或者在命令行方式下执行命令blddemo -q。很多时候使用命令行编译会更简单一些。如果你不确定该输入什么命令你可以在IDE中先执行命令然后观察编译结果输出窗口的第三行以Starting Build:开始的地方。冒号后面的就是那个操作的命令行语句。比如执行Sysgen对应的输出是Starting Build: SysgenPlatform %_TARGETPLATROOT% preprocSysgenPlatform %_TARGETPLATROOT% postproc。这里可以看出你需要在命令行方式中输入的命令是SysgenPlatform %_TARGETPLATROOT% preproc然后再输入命令SysgenPlatform %_TARGETPLATROOT% postproc。如果你使用命令行方式编译千万记住在执行blddemo 命令的时候别忘记带上-q的参数。因为如果不带这个参数就等于执行了Build and Sysgen!我希望这篇博文可以帮助你加速自己的编译过程在使用编译系统的过程中少走弯路Good luck!