PB5.0在build CE5.0 SDK时候出现错误:It is recommended that you build a run-time image before building an SDK. Otherwise, the build process for your SDK might not succeed. Do you want to continue?
如果点击是
If you click Yes to continue, you may receive the following error message that is generated by the SDK build:
解决:
参考微软技术贴:http://support.microsoft.com/zh-cn/kb/906459/en-us
要解决此问题,首先您要保证已成功生成的系统,在最近一次生成以后没有做如何模块的修改操作。 然后,请按照下列步骤操作:
在Platform Builder 5.0中的"Build OS"菜单下点击"Open Release Directory"打CE开命令行,在其中输入"dir %_PROJECTROOT%\SysgenSettings.out",
这个过程的效果如下所示:
E:\WINCE500\PBWorkspaces\mini2440\RelDir\smdk2440_ARMV4I_Release>dir %_PROJECTROOT%\SysgenSettings.out
驱动器 E 中的卷没有标签
卷的序列号是 58E0-CE75
E:\WINCE500\PBWorkspaces\mini2440\WINCE500\smdk2440_ARMV4I 的目录
2008-11-26 IBM T23 17:38 3,230 SysgenSettings.out
1 个文件 3,230 字节
0 个目录 8,280,449,024 可用字节
这表明:在那个目录下有"SysgenSettings.out"文件和大小,及其所在磁盘的一些信息。你就可以在指定的路径%_PROJECTROOT%下找到"SysgenSettings.out"文件。
再在CE命令行下输入set sysgen>anchored.txt,在指定的%_FlatReleaseDIR&路径下生成一个anchored.txt文本。
这个过程的效果如下所示:
E:\WINCE500\PBWorkspaces\mini2440\RelDir\smdk2440_ARMV4I_Release>set sysgen>anchored.txt
E:\WINCE500\PBWorkspaces\mini2440\RelDir\smdk2440_ARMV4I_Release>
在"E:\WINCE500\PBWorkspaces\mini2440\RelDir\smdk2440_ARMV4I_Release"下创建一个anchored.txt文本
然后你用记事本或是UE工具打开这两个文件,比较其中的不同。
具体是:找到Anchored.txt中有的,而在SysgenSettings.out中没有的Sysgen variables。
比如笔者这次找到的:
SYSGEN_DOTNET=1
SYSGEN_DOTNET_SUPPORT=1
这就找到了,造成SDK编译过程中错误的元凶了!
接着,在Platform Builder环境中的Catalog中寻找对应的组件。具体做法:
1.在Catalog界面的空白区右击鼠标,找到"Find"选项进行查询,比如要查询SYSGEN_DOTNET=1对应的组件,那就在Find what box中填入"SYSGEN_DOTNET",点击"Find next",这样就在Catalog区域标识出SYSGEN_DOTNET对应的组件,如图1所示;
2.对照SYSGEN_DOTNET对应的组件在Catalog中结构路径,在OSDesign View选项卡中找到同样的组件,一般这个最近会标识为"OSDesignView",即未锚定的组件,如图2所示;
3.OSDesign View选项卡中,右击未锚定的组件,选中"Remove Item from User-specified Catalog Item(s).",这样就在定制的系统中删除了未锚定的组件;
4.重复步骤1到步骤3,删除完在之前找出的Sysgen variables,既是为锚定的组件,删除之;
5.保存设置,否则容易在随后的漫长等待中出现意外(也不知道为啥,我的PB5.0[打了2007补丁]很多时候,在执行Config SDK时会卡个几个重头,真是让人郁闷!);
6.这样,就可以去正确的生成这个平台所对应的SDK了,构建SDK完成后,点击DONE结束,如图3、图4;
7.最后,在%_WINCEROOT%\PBWorkspaces\<工程名>\SDK\下就可以生成基于你定制的平台的SDK了!!而在该文件夹中的packinglist文件就是详细说明该SDK包含的组件和文件列表。