几种编译错误一

来源:互联网 发布:mac官网彩妆 编辑:程序博客网 时间:2024/05/22 00:15
 

错误一:

BUILD: [01:0000001306:ERRORE] NMAKE :  ?: don't know how to make 'C:\WINCE600\OSDesigns\OSDesign1\OSDesign1\Wince600\smdk2440a_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\nmdd.lib'

这个错误是由于USB驱动引起的,6.0的库不用nmdd.lib,而5.0的会用。

修改方法一:device drives—USB function—USB function clients中的组件选上。

修改方法二:把Function下的SOURCES文件

TARGETLIBS= \

       $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \

       $(_PROJECTROOT)\cesysgen\oak\lib\$(_CPUINDPATH)\ceddk.lib   \

SOURCELIBS= \

       $(_PROJECTROOT)\cesysgen\oak\lib\$(_CPUINDPATH)\nmdd.lib \

修改为

SOURCELIBS= \

    $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\nmddbase.lib

TARGETLIBS= \

    $(_P LICROOT)\common\oak\lib\$(_CPUINDPATH)\defbuslib.lib \

    $(_P LICROOT)\common\oak\lib\$(_CPUINDPATH)\ceosutil.lib \

    $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \

    $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib

错误二:

BUILD: [01:0000001537:ERRORE] NMAKE :  ?: don't know how to make 'C:\WINCE600\OSDesigns\OSDesign2\OSDesign2\Wince600\TQ2440_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\sdcardlib.lib'

BUILD: [01:0000001539:ERRORE] NMAKE.EXE TargetLibFiles  -i -c BUILDMSG=Stop.  BUILDROOT=C:\WINCE600\PLATFORM\TQ2440 CLEANBUILD=1 LINKONLY=1 NOPASS0=1 failed - rc = 2

这个错误是SD卡驱动引起的,无法找到sdcardlib.lib,原因是我们在系统组件中的设备驱动中没有选上SD卡驱动.

修改方法:选上device drives—SD—SD bus driver

      

错误三:

Error: Could not find file 'C:\WINCE600\OSDesigns\OSDesign1\OSDesign1\RelDir\smdk2440a_ARMV4I_Debug\sdhc_sc2440.dll' on disk

sdhc_sc2440.dllC:\WINCE600\OSDesigns\OSDesign1\OSDesign1\RelDir\smdk2440a_ARMV4I_Debug\sdhc_sc2440.dll NK SHK

修改方法:提示既然说找不到sdhc_sc2440.dll文件,那咱就给他找到并补上去不就得了呗,所以用个TQ2440的BSP FOR 6.0建立个新工程,编译,得到sdhc_sc2440.dll文件,把他复制到错误提示的目录下,问题就解决了,还有一定要在bib文件中把SDHC_SC2440相关内容注释掉才行,因为我是在删除SDHC驱动引起的。

错误四:

Error: Could not find file 'C:\WINCE600\OSDesigns\OSDesign1\OSDesign1\RelDir\smdk2440a_ARMV4I_Debug\smflash.dll' on disk

smflash.dllC:\WINCE600\OSDesigns\OSDesign1\OSDesign1\RelDir\smdk2440a_ARMV4I_Debug\smflash.dll NK SHK

修改办法:由于该错误和以上错误是一样的,上面的错误是我删除驱动引起的,而我这个错误我没有删除驱动,找了找,smflash是在smartmedia中生成的,找到smartmedia,原来系统本身就给我屏蔽掉了该驱动,在dirs中加进去,还得在对应的组件中加进去,在third party—BSP—storage drivers—Msflash drivers—smartmedia nandflash drivers 选项加入,就可以了。

错误五:

BUILD: [01:0000000065:ERRORE] GPIODriver.obj : error LNK2001: unresolved external symbol dpCurSettings

BUILD:[01:0000000066:ERRORE]C:\WINCE600\platform\TQ2440\target\ARMV4I\debug\GPIODriver.dll : fatal error LNK1120: 1 unresolved externals

修改办法:你这个是因为,其他驱动程序中都是用的DEBUGMSG,而这个leddriver.cpp用的RETAILMSG 其实这两个宏定义本质上是一回事。你看看,其他的编译没问题的驱动源程序中是不是有这段代码:

 

#ifdef DEBUG
DBGPARAM dpCurSettings = {
    TEXT("I2C"), {
    TEXT("Error"), TEXT("Warn"),  TEXT("Init"),  TEXT("Open"),
    TEXT("Read"),  TEXT("Write"), TEXT("IOCTL"), TEXT("IST"),
    TEXT("Power"), TEXT("9"),    TEXT("10"),    TEXT("11"),
    TEXT("12"),    TEXT("13"),    TEXT("14"),    TEXT("Trace"),
    },
    0x0003 // ZONE_WRN|ZONE_ERR
};
#endif  // DEBUG
把这段代码复制到leddriver.cpp中开始的位置,#incl?头文件段落之后就可以编译通过了。
或者你把leddriver.cpp中所有RETAILMSG删掉应该也可以。

原创粉丝点击