PB5.0 build CE5.0 SDK错误:It is recommended that you build a run-time image before building an SDK

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:

Rolling sysgen'ed headers and libs
… 
Error: This build configuration has not been sysgen'ed 
Error adding sysgen'ed headers and libs 
Error rolling toolkit-specific files 
MSI file construction completed. 3 error(s), 0 warning(s).

解决:

参考微软技术贴: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;

图4 完成SDK导出的画面
    7.最后,在%_WINCEROOT%\PBWorkspaces\<工程名>\SDK\下就可以生成基于你定制的平台的SDK了!!而在该文件夹中的packinglist文件就是详细说明该SDK包含的组件和文件列表。

参考: http://blog.mcuol.com/User/iwillbeback008/Article/8172_1.htm


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值