编译CE5.0系统时遇到错误"error C2589..." "error LNK1181..."(急,在先等)

xumeng19821029   2008-12-19 14:08 楼主
遇到如下错误
BUILD: [01:0000000124:ERRORE] e:\WINCE500\PLATFORM\smdk2440\DRIVERS\DISPLAY\S3C2440LCD\s3c2440disp.cpp(22) : error C2859: e:\wince500\platform\smdk2440\target\armv4i\retail\s3c2440disp.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.

BUILD: [01:0000000125:PROGC ] Linking E:\WINCE500\platform\smdk2440\lib\ARMV4I\retail\S3C2440DISP.lib
BUILD: [01:0000000134:ERRORE] LINK : fatal error LNK1181: cannot open input file 'obj\ARMV4I\retail\s3c2440disp.obj'

帮助文档里error C2859的解释
The project database and precompiled header files must be created together to ensure consistent information. Recreate the precompiled header.
好象说数据库和头文件没有同时生成,要重新编译头文件,不知道怎么做

error LNK1181说没有那个指定的路径

这两个问题怎么解决呢?

回复评论 (16)

错误信息已经说的很清楚 ,重编译它
点赞  2008-12-19 14:15
引用: 引用 1 楼 91program 的回复:
错误信息已经说的很清楚 ,重编译它

重编译那个头文件吗?我一直在重新编译系统,但是还是提示同样的错误
点赞  2008-12-19 14:32
LINK : fatal error LNK1181: cannot open input file 'obj\ARMV4I\retail\s3c2440disp.obj'
——估计这个没有生成,你去看看。
点赞  2008-12-19 14:38
那个头文件的地址应该在哪里找呢?我搜索了一下,有几个同名的
还有,找到后怎么编译呢?
点赞  2008-12-19 14:39
引用: 引用 3 楼 gooogleman 的回复:
LINK : fatal error LNK1181: cannot open input file 'obj\ARMV4I\retail\s3c2440disp.obj'
——估计这个没有生成,你去看看。


我搜索到这个文件了,路径E:\WINCE500\PLATFORM\smdk2440\DRIVERS\DISPLAY\S3C2440LCD\obj\ARMV4I\debug
点赞  2008-12-19 14:41
引用: 引用 3 楼 gooogleman 的回复:
LINK : fatal error LNK1181: cannot open input file 'obj\ARMV4I\retail\s3c2440disp.obj'
——估计这个没有生成,你去看看。


这个路径下是没有这个文件,是不是把我搜到的加进去再编译一下呢?
点赞  2008-12-19 14:44
看你的DIRS文件!
点赞  2008-12-19 14:51
引用: 引用 7 楼 xqhrs232 的回复:
看你的DIRS文件!

DIRS文件是什么文件?为什么看它?

我觉得没有那么复杂吧,s3c2440disp.cpp是什么文件啊?错误就指向它里面的头文件#include "precomp.h"
我以前也编译系统,没出现这个错误,这个是新编译的,是不是加进系统的组件出了问题呢?
点赞  2008-12-19 15:33
我把那个编译选项改成samsung smdk2440:ARMV4I_Denug,(之前是用release的),在Sysgen,出现如下错误
BUILD: [01:0000000648:ERRORE] NMAKE :  U1073: don't know how to make 'C:\software\PBproject\os1\WINCE500\smdk2440_ARMV4I\cesysgen\sdk\lib\ARMV4I\retail\Ndis.lib'
BUILD: [01:0000000650:ERRORE] NMAKE.EXE   -i -c BUILDMSG=Stop.  NOLINK=1 NOPASS0=1 failed - rc = 2
点赞  2008-12-19 15:39
我发现Ndis.lib这个文件不在\retail\下,而是在\debug\下,而且,'C:\software\PBproject\os1\WINCE500\smdk2440_ARMV4I\cesysgen\sdk\lib\ARMV4I\下没有\retail\这个文件夹,只有\debug\

这要怎么解决呢?
点赞  2008-12-19 16:02
建议你不要以dubug模式编译,这个经常报错,估计是BSP质量不行。
以release编译,也许一个错误也没有。
点赞  2008-12-19 16:07
引用: 引用 11 楼 gooogleman 的回复:
建议你不要以dubug模式编译,这个经常报错,估计是BSP质量不行。
以release编译,也许一个错误也没有。


一开始的两个错误就是release产生的.
一开始的问题怎么解决呢?DIRS是什么文件啊?

到底是不是我加错了东西进系统呢?
点赞  2008-12-19 16:32
dirs文件用来指定当前目录下的哪些目录需要被编译,见http://msdn.microsoft.com/en-us/library/aa909389.aspx

如果你从debug换到retail(由WINCEDEBUG环境变量决定,比如WINCEDEBUG=debug表示debug build),或者反之, 需要重新编译整个系统. 因为所link的库路径都不一样

对于你最开始的错误, 在源代码目录build -c应该可以解决
不行的话删除e:\wince500\platform\smdk2440\target\armv4i\retail\s3c2440disp.pdb 再重新build
点赞  2008-12-21 18:24
引用: 引用 13 楼 xdkui 的回复:
dirs文件用来指定当前目录下的哪些目录需要被编译,见http://msdn.microsoft.com/en-us/library/aa909389.aspx

如果你从debug换到retail(由WINCEDEBUG环境变量决定,比如WINCEDEBUG=debug表示debug build),或者反之, 需要重新编译整个系统. 因为所link的库路径都不一样

对于你最开始的错误, 在源代码目录build -c应该可以解决
不行的话删除e:\wince500\platform\smdk2440\target\armv4i\retail\s3c2440disp.pdb 再重新bu…


您给的那个连接是CE6的,我看了一下,还是没找到dirs文件,在CE5中有对应的文件吗?

我把s3c2440disp.pdb删了,还是不行

我决定重装PB了

郁闷!111111111111
点赞  2008-12-22 09:39
CE5我不确定, 但我感觉应该是一样的, ce的编译系统应该没怎么变
d:\WINCE600\PLATFORM\DEVICEEMULATOR\dirs (比如这个, 你CE5对应路径下没有dirs文件吗?可以搜搜看)

可以打开build window吗? 如果可以, blddemo clean -c看看是否成功? 这个命令需要时间比较长. 如果还是不行, 把build.log里的错误信息贴出来
点赞  2008-12-22 11:49
谢谢
我已经重装了,搞了太久了
感谢,以后多交流
点赞  2008-12-24 11:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复