WINCE编译debug版本出错的问题

来源:互联网 发布:历史数据库设计 编辑:程序博客网 时间:2024/04/30 08:17

WINCE编译debug版本出错的问题

2010-07-23 11:05

      编译debug版本一直出错,困扰了好久,今天终于解决了。我相信也有不是人遇到这个问题,今天我就把自己才解决方法和过程写出来和大家分享,希望能帮到一下正在被此问题困扰的朋友。

    很多情况是编译release版本没有错误,编译debug时出错。一般有两种错误提示:              

1.:BUILD: [01:0000000169:ERRORE] NMAKE : U1073: don't know how to make 'F:/wince5project/test1/WINCE500/new2440_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/Ndis.lib'
BUILD: [01:0000000171:ERRORE] NMAKE.EXE -i -c BUILDMSG=Stop. NOLINK=1 NOPASS0=1 failed - rc = 2

     出现这样的错误提示一般是驱动程序所在文件下的SOURCE文件里关于SOURECELIBS和TARGETLIBS的设置有错,这样解决:

TARGETLIBS= /
$(_PROJECTROOT)/cesysgen/sdk/lib/ARMV4I/retail/coredll.lib /
   $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib

SOURCELIBS= /
$(_PROJECTROOT)/cesysgen/sdk/lib/ARMV4I/retail/Ndis.lib /


改为

TARGETLIBS=                                                     /
   $(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/ndis.lib      /
   $(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/ntcompat.lib /
   $(_PROJECTROOT)/cesysgen/sdk/lib/$(_CPUINDPATH)/coredll.lib /
   $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib              /

   重新编译很可能还会出现这样的错误提示:

BUILD: [01:0000000696:ERRORE] init.obj : error LNK2001: unresolved external symbol dpCurSettings
BUILD: [01:0000000697:ERRORE] socket.obj : error LNK2001: unresolved external symbol dpCurSettings

    这个错误牵扯到WINCE调试里面关于Debug Zones的功能,通常也被称为调试域,通过它可以控制打印信息。release版本是用到的是REATAILMSG,debug版本时用到的是DEBUGMSG,这两个宏定义本质是一样的,只是定义方法不同。要使用DEBUGMSG必须有这样的一段定义:

#ifdef DEBUG   
DBGPARAM dpCurSettings = {   
    TEXT("userLED"), {   
    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   
};

    这样就解决了错误二,这里面还有很多细节性的问题,感兴趣的可以继续查资料,深入了解。

原创粉丝点击