如果在构建过程中发生了错误,则须找出错误的原因并解决。通常,找出错误的原因有两种途径:
1.查看输出信息
在Platform Builder IDE的Output窗口或命令行中,可通过查看命令行工具的输出信息来找到错误的原因。通常一些比较简单的错误都可以通过此种方式解决。例如,构建运行时映像时,遭遇硬盘空间不足或者选择的模块太多,导致NK.bin体积超过预设值。
2.查看日志文件
在构建过程中,Windows CE的构建系统会把一些输出重定向到几个日志文件中。通过阅读日志文件,可知道详细的构建信息,从而更好的找出错误的原因。通常,日志文件被放在目录%_WINCEROOT%下,日志文件的描述如下:
build.log 包含构建系统各个步骤的详细输入/输出信息,是解决构建错误的主要依据
build.wrn 构建过程中出现的警告(Warning)信息
build.err 构建过程中出现的错误信息
错误的原因有可能是多种多样的。但大致来说,可按照构建系统时映像的4个过程归纳,大致有如下几种
1.Sysgen过程中的错误
如果在Sysgen过程中出错,通常原因是由于缺少文件。例如:缺少操作系统组件的库文件或者配置文件。此外,批处理文件运行失败也可能导致Sysgen出错。
如果Sysgen提示缺少某些文件,那么常常是因为组件之间的依赖关系设置不正确。此种情况在第三方的代码中比较有可能发生,当然Platform Builer自带的组件也有可能,此时可查找所缺少的文件属于哪个组件,然后把该组件添加到系统,一般问题就可解决了。
2.Build过程中的错误
build过程主要是对源代码进行编译和链接。因此Build过程中的错通常都是由于编译或链接失败造成的。编译失败是由于代码中的语法错误,链接失败则是由于有外部的符号没有解决或重复。
要解决Build过程的错误,可充分利用应用程序开发或在其他Win32平台下积累的经验。
3.Release Copy过程的错误
Release Copy过程主要是文件的复制。因此错误只可能是文件复制失败造成的。例如没有足够的磁盘空间以及在FAT32文件系统中使用CopyLink方式复制文件等。
4.Make Image过程中的错误
Make Image过程的错误主要是有RomImage.exe造成的。例如RomImage在Ce.bib上调用失败。
此步经常出现的错误是打包时找不到某些文件。如果出现这个错误,则可查看目录%_FLATRELEASEDIR%下最终生成的Ce.bib文件:该文件是在何种情况下被包含的以及属于哪个模块,然后加以解决。
此外,如果生成的Flash映像NBX文件大于Config.bib文件中指定的大小,那么通常会被切分成多个小文件。这虽然只产生一个Warning,但是他会导致最终的Flash运行时映象无法执行,应引起足够的重视。