新建了工程,加入之前完整的BSP,怎么也编译不过,提示:
[01:0000009403:ERRORE] NMAKE : U1073: don't know how to make 'C:\WINCE600\OSDesigns\xyjhht30\xyjhht30\Wince600\SMDK6410_ARMV4I\cesysgen\sdk\lib\ARMV4I\retail\ddraw.lib'
添加组件Catelog View --> Core OS --> CEBASE --> Graphics and Multimedia techlonogies --> Graphics --> DirectDraw
还有一次是提示
[01:0000009403:ERRORE] NMAKE : U1073: don't know how to make 'C:\WINCE600\OSDesigns\*****sdcardlib.lib
添加组件: Catelog View--> Device driver --> SDIO --> SD Host --> SDIO Standard Host Controller
--> SDIO Memory --> SDIO Memory
--> SD --> SD Bus Driver
原来是因为组件的原因,在6.0中,如果相应的组件没有添加,会提示中个错误。
--------------制作SDK会出现错误,在build.log提示:“C:\WINCE600\public\common\oak\misc\sources.ReleaseType_OAK
NMAKE : fatal error U1073: don't know how to make
'C:\WINCE600\OSDesigns\Testce\Testce\Wince600\DeviceEmulator_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\atlsd.lib'”
解决办法:Search for "ATL" in your catalog items view and make sure "Active Template
Library (ATL)" is checked. In our case it was not. After adding this item the
build succeeded.
大意就是:在你的 catalog items中搜索“ATL”,找到“Active Template Library (ATL)”是否被选中,如果选中,以上的问题可以解决,本人试过了,确实这个问题OK了
根据名字,ufnmdd.lib是USB Function Driver的mdd层支持库,根据Wince驱动常识,MDD层代码由微软提供,不是用户或者OEMer写的,那为什么还找不到呢?
因为,微软只把你选中的那些功能的库编译出来放在刚才楼上的同胞们提到的目录中,因此,如果找不到这个文件,那一定是你在VS2005下没选中相应的功能。那怎么选呢?
在VS2005下,打开工程的Catalog栏,点击...CORE OS...USB Function Driver下的USB Function Driver选项,然后再重新Build->Advanced Build Commands->sysgen,就OK了,见下图:
+
build.log中的提示如下:
NMAKE : fatal error U1073: don't know how to make 'C:\WINCE600\OSDesigns\Emulator\Emulator\Wince600\DeviceEmulator_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\atls.lib'
Stop.
NMAKE : fatal error U1077: 'C:\WINCE600\sdk\bin\i386\nmake.exe' : return code '0x2'
Stop.
看起来跟ATL有点关系,但在相应的目录下有这个文件,后来怀疑跟组件有关系,把“Active Template Library(ATL)”组件选中重新编译,果然就没有问题了。