您的位置 首页 嵌入式

WinCE体系的编译进程

在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。我现在用WinCE6.0在自己的PC上面编译一次用时19分1

在WinCE体系中,当咱们完结了相关的开发和体系定制作业今后,会编译WinCE体系,最终生成NK.bin和NK.nb0。我现在用WinCE6.0在自己的PC上面编译一次用时19分16秒(有一天无聊,就测了一下)。下面介绍一下WinCE体系的编译进程,大致分为4个阶段:编译阶段(Compile phase),体系发生阶段(Sysgen phase),文件复制阶段(Release copy phase)和生成映像阶段(Make Run-time image phase)。

进程如图:

从图中能够看出,整个编译都是经过调用Blddemo.bat来完结的,实际上也是这样,编译WinCE便是用Blddemo.bat,只不过后边能够跟不同的参数。编译阶段和体系发生阶段由Cebuild.bat完结,文件复制阶段由Buildrel.bat完结,最终的生成映像阶段由Makeimg.exe完结。下面介绍一下各个阶段。

1. 编译阶段(Compile phase)

这个进程指对WinCE途径下的Private和Public目录进行编译,将里边的源代码编译成库文件等,这个进程或许会花费几个小时。除非改动了Private或Public目录下的源码,否则是不需求编译的。一般咱们编译自己的工程的时分,不需求这个进程。

2. 体系发生阶段(Sysgen phase)

在这个进程中,体系会依据你在PB中Catalog中的选项,删去和设置相应的SYSGEN环境变量,链接相应的静态库,过滤头文件,为SDK创立所需的导入库,一起还会为WinCE体系创立一些配置文件。最终会编译当时的BSP和使用程序。

3. 文件复制阶段(Release Copy phase)

复制一切所需的文件到工程的release目录下面,主要是前面体系发生阶段所发生的一切文件。

4. 生成映像阶段(Make run-time image phase)

该进程首要调用cenlscmp.exe依据世界语系与区域设定生成wince.nls文件。然后调用Fmerge.exe兼并一些配置文件,兼并一切bib文件为ce.bib,兼并一切的reg文件为Reginit.ini,兼并一切的dat文件为Initobj.dat,兼并一切的db文件为Initdb.ini。之后调用Regcomp.exe紧缩reginit.ini为default.fdf。依据LOCAL环境变量的设置调用Res2exe.exe更新一切的dll,exe和cpl文件中的资源文件,主要是更新其间的言语部分。再调用Txt2ucde.exe转化一切ASCII码字符串为UN%&&&&&%ODE。最终调用Romimage.exe兼并一切文件为NK.bin。

在整个编译进程中有时会遇到编译过错,这个能够经过观察Build.log,Build.err和Build.wrn文件来剖析问题,这三个文件应该是坐落”\WINCE600”目录下面。编译过错或许在不同的编译阶段发生,咱们也能够依据这一点来剖析问题。

一般在体系发生阶段(Sysgen phase)呈现过错很或许是因为丢掉组件或文件形成的,这时分Build.log会供给更多信息协助剖析问题。在这个阶段发生过错,很或许是因为在当时工程中增加或许删去WinCE组件形成的,其间有些组件的更改是需求进行”clean sysgen”的,而不能只运用”sysgen”指令。所以我的主张是每次增加或删去组件都做”clean sysgen”。

如上面介绍体系发生阶段(Sysgen phase)也会编译BSP和部分使用。所以假如过错呈现在体系发生阶段的编译进程中,一般一种或许便是你的代码有语法过错,当然这种过错很好查。还有一种或许呈现的过错是衔接过错,有或许是丢掉了lib库文件或许链接错了库文件,也有或许是调用了过错的API函数,还有便是设置了过错的环境变量,这些查起来相对困难一点。

假如过错发生在文件复制阶段(Release copy phase),一种常见的问题便是和硬盘驱动器有关,检查一下release目录地点磁盘的磁盘空间。

假如问题呈现在生成映像阶段(Make run-time image phase),依据编译的输出窗口的输出信息判别问题出在哪个子阶段。一种或许是你的bib文件或许reg文件中存在语法过错导致兼并文件时犯错,还有便是留意你的image的巨细是否超过了config.bib文件中的设定,还有便是或许丢掉了某个或许某些文件,这些丢掉的文件很或许是因为在前面的编译进程中呈现过错导致的。

当然,也有时分会遇到一些古怪的问题,这些问题或许是因为没有正确的装置WinCE形成的,比如在装置WinCE的时分,途径中不要有中文或许空格或许其他比较古怪的字符。补丁要依照次序来打,要不也或许会呈现问题。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/297781.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部