68

帖子

0

TA的资源

一粒金砂(初级)

21
 
引用 19 楼 zzqccc 的回复:
最好在debug模式下编译


好郁闷啊,编译出来的NK.bin有40M,超出了设置的范围,并且没有生成NK.nb0
还出现如下错误
---------------------------------
Fatal error hit, exiting...
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).
makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).

如果编译出来的NK那么大,那明显是不行的了。


哎,面对着诱人的KITl,最后也是空欢喜一场。

回复

72

帖子

0

TA的资源

一粒金砂(初级)

22
 
你单独编译一支驱动就可以,不用所有的都Build成Debug版的
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

23
 
引用 21 楼 gsymichael 的回复:
你单独编译一支驱动就可以,不用所有的都Build成Debug版的


你是说在一个驱动中的source文件设置WINCEDEBUG=debug就可以?

这个方法不错啊
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

24
 
我在NLEDDRVR驱动的source文件里面加上WINCEDEBUG=debug
会出错
NMAKE :  U1073: don't know how to make 'C:\WINCE500\PBWorkspaces\ARMSYS2440\WINCE500\smdk2440a_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\nleddrvr_lib.lib'
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

25
 
不加WINCEDEBUG=debug编译就不会出错么?

你看下source文件里,nleddrvr_lib.lib路径有没有错先。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

26
 
引用 23 楼 gooogleman 的回复:
我在NLEDDRVR驱动的source文件里面加上WINCEDEBUG=debug
会出错
NMAKE :  U1073: don't know how to make 'C:\WINCE500\PBWorkspaces\ARMSYS2440\WINCE500\smdk2440a_ARMV4I\cesysgen\oak\lib\ARMV4I\debug\nleddrvr_lib.lib'


难道我设置的不对,sources文件不可以设置环境变量吗?

如果不正确那到底怎么做才能像gsymichael老兄所说的那样把部分驱动以debug模式编译呢?

帖子加分,希望高手来解决。不能再拖了,有很多郁闷的驱动都要KITl帮忙。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

27
 
你在那个对应的目录下没有Debug文件夹,你在那里创建一个文件夹,然后把对应的Release下的lib都复制过去。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

28
 
哈哈,等你搞出来我就拿来主义了。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

29
 
根据gsymichael的指示,做了上一步
又出现如下错误
BUILD: [01:0000000036:ERRORE] NMAKE :  U1073: don't know how to make 'C:\WINCE500\PBWorkspaces\ARMSYS2440\WINCE500\smdk2440a_ARMV4I\cesysgen\sdk\lib\ARMV4I\debug\coredll.lib'
现在我继续如法炮制。错误也没有了。

不过现在还有最后一个错误
nled.obj : error LNK2001: unresolved external symbol dpCurSettings我估计是链接了一些库函数呀,应该是debug的库函数,但是现在没有链接进来导致错误。

我觉得NK之所以会变得这么大,就是连接了那个debug库。

如果现在强行链接进来,估计NK也会很大,超过32M,bootloader都无法下载的。

真是苦难重重啊。不管那么多先试试先,那个库在哪里呢?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

30
 
引用 26 楼 gsymichael 的回复:
你在那个对应的目录下没有Debug文件夹,你在那里创建一个文件夹,然后把对应的Release下的lib都复制过去。


我觉得是路径的问题,你是手工把lib文件复制过去的,链接路径不对肯定出问题
你把soure文件coredll.lib,nleddrvr_lib.lib里的路径贴出来看看
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

31
 
dpCurSettings
这个东西好像是设置一个Debug信息输出域的,你想办法在代码中把这部分注释掉,没有什么影响。
一般在Build Debug版的时候会出一些错误的,有些是代码不严谨造成的。需要你仔细检查一下
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

32
 
引用 29 楼 zzqccc 的回复:
引用 26 楼 gsymichael 的回复:
你在那个对应的目录下没有Debug文件夹,你在那里创建一个文件夹,然后把对应的Release下的lib都复制过去。


我觉得是路径的问题,你是手工把lib文件复制过去的,链接路径不对肯定出问题
你把soure文件coredll.lib,nleddrvr_lib.lib里的路径贴出来看看


现在我把整个sources贴出来

!if 0
Copyright (c) Microsoft Corporation.  All rights reserved.
!endif
!if 0
Use of this source code is subject to the terms of the Microsoft end-user
license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
If you did not accept the terms of the EULA, you are not authorized to use
this source code. For a copy of the EULA, please see the LICENSE.RTF on your
install media.
!endif

!if "$(BSP_NONLED)" == "1"
SKIPBUILD=1
!endif

WINCEDEBUG=debug
WINCEOEM=1


TARGETNAME=nleddrvr
TARGETTYPE=DYNLINK
RELEASTYPE=PLATFORM

DLLENTRY=DllMain

DEFFILE=nleddrvr.def

TARGETLIBS=$(_SYSGENSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
           $(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \

SOURCELIBS=$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\nleddrvr_lib.lib \

SOURCES = \
        nled.cpp
---------------------------------------------------------------------------

你是说SOURCELIBS=$(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\nleddrvr_lib.lib \这个路径有问题?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

33
 
这个路径看起来没什么问题

我有遇到你同样的编译问题,在release下可以,debug编译报那样的错,最后发现是路径错了。所以有此怀疑。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

34
 
我觉得只让部分驱动编译成debug的方法虽然高级,但是很难搞。
我在外国网站上看到我上面的错误 error LNK2001: unresolved external symbol dpCurSettings的N个解释原因。

我觉得像是有些库没有连接进来。

现在我觉得还有些方法比较合适,就是你在调试哪个驱动就保留哪个驱动,其他驱动屏蔽。仍然以debug模式编译,这样估计生成的NK.bin会小下来。
并且保证了链接了调试的库。
其余没有用的东西全部去掉。我想微软当时设计的时候也应该考虑这个方法。

哎。继续。..............
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

35
 
我已经把所有不影响启动的驱动都去掉了,没有想到编译出来的的NK.bin还是36M。

我刚才问一个朋友,他说我按照上面选是不用debug模式编译的,
唉,有什么办法把这个NK缩小呢?
把微软的一些组件去掉,现在还不会啊。

回家继续编译....................
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

36
 
不知道你的为什么会那么大,我这边只把一个驱动搞成Debug的,其他的还是Release的也就10几M。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

37
 
不行就把那个大于32M的Setting项选上看看
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

38
 
引用 35 楼 gsymichael 的回复:
不知道你的为什么会那么大,我这边只把一个驱动搞成Debug的,其他的还是Release的也就10几M。


关键是你那个方法比较复杂,我搞不定。
——你避过了一些垃圾。我现在回去继续裁剪。应该可以弄到32M的。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

39
 
分别编译一个Debug的一个Release的,然后把需要的DLL从Debug里拷到Release下面,然后生成Image,这样的Image肯定不会大
另外Image40M肯定没有问题的,还烧过50M以上的呢
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

40
 
引用 34 楼 gooogleman 的回复:
我已经把所有不影响启动的驱动都去掉了,没有想到编译出来的的NK.bin还是36M。

我刚才问一个朋友,他说我按照上面选是不用debug模式编译的,
唉,有什么办法把这个NK缩小呢?
把微软的一些组件去掉,现在还不会啊。

回家继续编译....................


我是直接在OSDesignView里右键“remov Item……",驱动其实没有多大,删应用部分的组件就行了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【回帖赢京东卡】说说无线技术那些事儿
即日起—2月28日,参与回帖讨论都有机会赢取【30元京东卡】

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表