mu163163 发表于 2012-11-22 16:56:20

wince6.0内核debug版本编译出错,求解决办法!(已解决)

本帖最后由 mu163163 于 2012-11-23 02:58 编辑

如题所述,release版本是没问题的,换成debug版本再重新编译(Clean Sysgen 跟 Build都出错)就出错了,出错信息如下:
BUILD: Message
BUILD: NMAKE :U1073: don't know how to make 'E:\WINCE600\PLATFORM\SMDK6410\lib\ARMV4I\retail\DriverLib.lib'
BUILD: NMAKE.EXE TargetExeFiles-i -c BUILDMSG=Stop.BUILDROOT=E:\WINCE600\PLATFORM\SMDK6410 CLEANBUILD=1 LINKONLY=1 NOPASS0=1MAKEDLL=1 failed - rc = 2

这是build.err里面的信息,然后去看了一下E:\WINCE600\PLATFORM\SMDK6410\SRC\DRIVERS\DrvLib下的sources文件,如下:
TARGETNAME = DriverLib
TARGETTYPE = LIBRARY
RELEASETYPE = PLATFORM
WINCEOEM = 1

INCLUDES = $(INCLUDES);$(_TARGETPLATROOT)\src\inc;

SOURCES=    \
      DriverLib_mem.c

ARM_SOURCES= \
    Oemaddrtab.s \

本人对这方面的知识不是很了解,不知道有没有哪位兄台试过编译出debug版本的内核,或者有解决办法的,希望能交流下。


mu163163 发表于 2012-11-23 02:57:00

本帖最后由 mu163163 于 2012-11-23 03:02 编辑

弄了一个晚上,终于算是搞定了,先写下来吧。
我们先说说出现上述错误的原因吧,其实错误并不在DriverLib.lib这个库上,如果你去E:\WINCE600\PLATFORM\SMDK6410\lib\ARMV4I\debug这个目录下看的时候,你会发现,其实DriverLib.lib这个库已经存在了,那为什么有上面所说的错误呢,这个时候去看看编译的信息,你发现其实是由其他的库编译不成功造成的,我的是因为ADC这个库的编译不成功造成的,然后我们去看下E:\WINCE600\PLATFORM\SMDK6410\SRC\DRIVERS\ADC目录下的sources文件,结果发现如下的语句:
TARGETLIBS= \
    $(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib \
      $(_WINCEROOT)\PLATFORM\SMDK6410\lib\ARMV4I\retail\DriverLib.lib \

这是生成ADC.lib的时候要动态链接的库,红色的部分就是出错的原因了,他引用的是retail目录下的库,而你用Clean Sysgen的时候,是会把retail目录下的东西清光的(Build不知道会不会),这个时候去链接这个库,就会提示找不到了。

知道了原因,就好办了,这里我想到的三种解决办法:
1.从debug目录copy一个DriverLib.lib到retail目录下。这是最简单的解决办法
2.release版本编译一遍,不要用Clean Sysgen,用Sysgen编译就好
3.把上面说到的出问题的lib的sources文件改一下,让他去链接debug目录的库。不过这种办法吃力不讨好,因为你改了这个,再编译一次的话,会发现还有其他的库是存在问题的,你要改好多个,而且在你去编译release版本的时候,如果用的是Clean Sysgen的话,就会提示找不到debug目录下的库,这个时候你又要改回来了。
以上是我一个晚上的成果了,因为自己对驱动这块不熟悉,所以建议大家如果只是为了得到debug版本的内核的话,可以采取第一种办法,真正要有个完美的办法,看来得要写驱动的那个人来弄了。
以上都是个人见解,如果有不对的地方,欢迎大家指正,大家一起学习。:lol
好了,夜深了,终于可以睡个好觉了

feiyangqingyun 发表于 2012-12-8 20:34:27

mu163163 发表于 2012-11-23 02:57 static/image/common/back.gif
弄了一个晚上,终于算是搞定了,先写下来吧。
我们先说说出现上述错误的原因吧,其实错误并不在DriverLib. ...

感谢分享学习精神啊

zdyp19681119 发表于 2012-12-12 08:53:51

精神可嘉。
页: [1]
查看完整版本: wince6.0内核debug版本编译出错,求解决办法!(已解决)