WINCE PB编译不过各种错误集锦

本文将不择手段搜集WINCE PB的各种编译不过的错误并给出解决方案或是相关思路,搜集资料来源:本人编译出错后得到解决后的学习笔记,网上搜集的资料,朋友的教导等,后面将会详细 备注,大家一起交流。文章一式两份,一份在博客上,另外一份放到论坛中,并实时更新。[电子技术论坛:http://bbs.armeasy.com]

一:不能sysgen,
sysgen 变灰色
    检查BSP包的命名,所建工程的命名是否正确!

二:*(LPDWORD) OEMMapMemAddr (dwImageStart, dwImageStart + ROM_SIGNATURE_OFFSET)函数不等于“CECE”
    如下函数不执行:[
ROM_SIGNATURE=“CECE”
    if (*(LPDWORD) OEMMapMemAddr (dwImageStart, dwImageStart + ROM_SIGNATURE_OFFSET) == ROM_SIGNATURE)
        {
            //added by lqm,2009.07.11
            //EdbgOutputDebugString("*OEMMapMemAddr() = 0x%x/r/n",*(LPDWORD) OEMMapMemAddr (dwImageStart, dwImageStart + ROM_SIGNATURE_OFFSET));
            EdbgOutputDebugString("*OEMMapMemAddr() = 0x%x/r/n",*(LPDWORD) OEMMapMemAddr (0x80200000,0x80200040));
            EdbgOutputDebugString("dwImageStart:0x%x/r/n",dwImageStart);
            EdbgOutputDebugString("ROM_SIGNATURE_OFFSET:0x%x/r/n",ROM_SIGNATURE_OFFSET);
            EdbgOutputDebugString("ROM_SIGNATURE:0x%x/r/n",ROM_SIGNATURE);
            // 紧接着存放CECE的后面就是TOC,里面存有NK.exe的地址。其中sizeof(ULONG)用于顺延存放CECE的四个字节区域
            dwpToc = *(LPDWORD) OEMMapMemAddr (dwImageStart, dwImageStart + ROM_SIGNATURE_OFFSET + sizeof(ULONG));
            // 为了修正指针,需要再次映射一次
            // need to map the content again since the pointer is going to be in a fixup address
            dwpToc = (DWORD) OEMMapMemAddr (dwImageStart, dwpToc + g_dwROMOffset);

            EdbgOutputDebugString ("ROMHDR at Address 0x%X/r/n", dwImageStart + ROM_SIGNATURE_OFFSET + sizeof (DWORD)); // right after signature
        }
    一起以为是没找着TOP里面的"CECE",后来经魏公公指点,原来是之前生成的XIP.bin不是XIP模式的。

    将processbib.exe,preromimage.bat两个文件放到D:/WINCE500/PLATFORM/SMDK2450/Files目录下,先copy files to release,
再make一下,生成的xip.bin就是xip模式的了。

三:PB编译时提示
spawn failed:invalid argument错误
每次编译出错信息还不一样!

这次提示如下错误:
BUILD: [01:0000000836:PROGC ] Compiling ./arcdlg.cpp
BUILD: [01:0000000839:PROGC ] Compiling ./connectingdlg.cpp
BUILD: [01:0000000842:PROGC ] Compiling ./dlgbase.cpp
BUILD: [01:0000000845:PROGC ] Compiling ./events.cpp
BUILD: [01:0000000848:PROGC ] Compiling ./mainwnd.cpp
BUILD: [01:0000000851:PROGC ] Compiling ./rdrwarndlg.cpp
BUILD: [01:0000000854:PROGC ] Compiling ./settings.cpp
BUILD: [01:0000000857:PROGC ] Compiling ./utils.cpp
BUILD: [01:0000000860:PROGC ] Linking C:/WINCE500/public/rdp/oak/lib/ARMV4I/retail/cetscbase.lib
BUILD: [00:0000000865:PROGC ] Compiling /WINCE500/PUBLIC/RDP/OAK/UIT/CETSC/CLIP/ directory.
BUILD: [01:0000000872:PROGC ] Compiling ./tscclip.cpp
BUILD: [01:0000000875:PROGC ] Linking C:/WINCE500/public/rdp/oak/lib/ARMV4I/retail/cetscclip.lib
BUILD: [00:0000000878:PROGC ] Compiling /WINCE500/PUBLIC/RDP/OAK/UIT/CETSC/UI/ directory.
BUILD: [01:0000000885:PROGC ] Compiling ./tscui.cpp
BUILD: [01:0000000888:PROGC ] Compiling ./maindlg.cpp
BUILD: [01:0000000891:PROGC ] Compiling ./propdisplay.cpp
BUILD: [01:0000000894:PROGC ] Compiling ./propgeneral.cpp
BUILD: [01:0000000897:PROGC ] Compiling ./proplocalres.cpp
BUILD: [01:0000000900:ERRORE] NMAKE : 

U1045: spawn failed : Invalid argument
BUILD: [01:0000000903:ERRORE] NMAKE.EXE  -i -c BUILDMSG=Stop.  NOLINK=1 NOPASS0=1 failed - rc = 2

下面还有一个错误:

BUILD: [00:0000000101:PROGC ] Scan /WINCE500/PUBLIC/WCESHELLFE/OAK/WATSON/DWUI/
BUILD: [00:0000000106:PROGC ] Scan /WINCE500/PUBLIC/WCESHELLFE/OAK/WATSON/DWCTLPNL/
BUILD: [00:0000000109:PROGC ] Saving C:/WINCE500/PUBLIC/WCESHELLFE/Build.dat.
BUILD: [00:0000000111:PROGC ] Total of 0 pass zero files to compile in 14 directories.
BUILD: [00:0000000112:PROGC ] Building generated files in /WINCE500/PUBLIC/WCESHELLFE/OAK/CTLPNL/cplmain/.
BUILD: [00:0000000119:PROGC ] Building generated files in /WINCE500/PUBLIC/WCESHELLFE/OAK/CTLPNL/ADVBACKLIGHT/.
BUILD: [00:0000000126:PROGC ] Building generated files in /WINCE500/PUBLIC/WCESHELLFE/OAK/CTLPNL/CONNPNL/.
BUILD: [01:0000000129:ERRORE] NMAKE.EXE  -i -c BUILDMSG=Stop.  NOLINK=1 PASS0ONLY=1 CLEANBUILD=1 failed - rc = 1
BUILD: [00:0000000130:PROGC ]                      Files      Warnings      Errors
BUILD: [00:0000000131:PROGC ] Midl                    0            0          0
BUILD: [00:0000000132:PROGC ] Resource                0            0          0
BUILD: [00:0000000133:PROGC ] Message                  0            0          0
BUILD: [00:0000000134:PROGC ] Precomp Header          0            0          0
BUILD: [00:0000000135:PROGC ] C/Cpp/Cxx                0            0          0
BUILD: [00:0000000136:PROGC ] Assembler                0            0          0
BUILD: [00:0000000137:PROGC ] Static Libraries        0            0          0
BUILD: [00:0000000138:PROGC ] Dll's                    0            0          0
BUILD: [00:0000000139:PROGC ] Exe's                    0            0          0
BUILD: [00:0000000140:PROGC ] Resx                    0            0          0
BUILD: [00:0000000141:PROGC ] Csharp Targets          0            0          0
BUILD: [00:0000000142:PROGC ] Other                    0            0          1
BUILD: [00:0000000143:PROGC ]
BUILD: [00:0000000144:PROGC ] Total                    0            0          1
BUILD: [00:0000000145:PROGC ]
BUILD: [00:0000000146:PROGC ] 0 Warnings,  1 Errors

最后提示的错误:

Build for Windows CE (Release) (Built on Apr 14 2005 13:54:39)
File names: Build.log Build.wrn Build.err Build.dat
CEBUILD: Running sysgen -p wceshellfe preproc
Starting sysgen phase for project ( wceshellfe )
Sysgening platform C:/WINCE500/platform/smdk2450
Sysgening platform C:/WINCE500/platform/smdk2450
/WINCE500/build.err
C:/WINCE500/build.err
C:/WINCE500/build.log
C:/WINCE500/build.wrn
已复制        3 个文件。
BLDDEMO: There were errors building 2450_p900


2450_p900 - 3 error(s), 10 warning(s)

    这个问题比较麻烦,我通过重装系统(换用另外一张堞装,非ghost),成功过一次,换用台式机,也成功过。但是笔记本上后来又不行了,原因不明。

四:PB编译提示don't know how to make.........................

编译2450 bootloader出错,编译driver没错,

编译Eboot错误如下:

BUILD: [01:0000000039:PROGC ] Compiling ./debug.c
BUILD: [01:0000000042:PROGC ] Compiling ./ether.c
BUILD: [01:0000000045:PROGC ] Compiling ./flash.c
BUILD: [01:0000000048:PROGC ] Compiling ./nand.cpp
BUILD: [01:0000000051:PROGC ] Compiling ./usb.c
BUILD: [01:0000000054:PROGC ] Assembling ./usbs.s
BUILD: [00:0000000060:PROGC ] Linking /WINCE500/PLATFORM/SMDK2450/Src/Bootloader/Eboot.Whimory/ directory.
BUILD: [01:0000000067:ERRORE] NMAKE :  U1073: don't know how to make 'E:/WINCE500/platform/smdk2450/lib/ARMV4I/retail/oal_memory_s3c2450.lib'
BUILD: [01:0000000069:ERRORE] NMAKE.EXE  -i -c BUILDMSG=Stop.  LINKONLY=1 NOPASS0=1 failed - rc = 2
BUILD: [00:0000000070:PROGC ]                      Files      Warnings      Errors
BUILD: [00:0000000071:PROGC ] Midl                    0            0          0
BUILD: [00:0000000072:PROGC ] Resource                0            0          0
BUILD: [00:0000000073:PROGC ] Message                  0            0          0
BUILD: [00:0000000074:PROGC ] Precomp Header          0            0          0
BUILD: [00:0000000075:PROGC ] C/Cpp/Cxx                6            2          0
BUILD: [00:0000000076:PROGC ] Assembler                3            0          0
BUILD: [00:0000000077:PROGC ] Static Libraries        0            0          0
BUILD: [00:0000000078:PROGC ] Dll's                    0            0          0
BUILD: [00:0000000079:PROGC ] Exe's                    0            0          0
BUILD: [00:0000000080:PROGC ] Resx                    0            0          0
BUILD: [00:0000000081:PROGC ] Csharp Targets          0            0          0
BUILD: [00:0000000082:PROGC ] Other                    0            0          2
BUILD: [00:0000000083:PROGC ]
BUILD: [00:0000000084:PROGC ] Total                    9            2          2
BUILD: [00:0000000085:PROGC ]
BUILD: [00:0000000086:PROGC ] 2 Warnings,  2 Errors
Build for Windows CE (Release) (Built on Apr 14 2005 13:54:39)
File names: Build.log Build.wrn Build.err Build.dat

2450_p900 - 2 error(s), 2 warning(s)


我按照提示的路径找不着这个静态库,oal_memory_s3c2450.lib

难道这个静态库PB装时给漏掉了?

后来重装WINCE,打04,05,06,07年的补丁,问题依旧。看来还是没经验啊,感谢CSDN的高手Veabol,编译Src/Common/后,果真生成了oal_memory_s3c2450.lib。

可是又出来一个CS8900*.lib的静态库,后面的字符不记得了,看来还有其他地方要生成该库。编译整个SMDK2450工程,看提示估计是该静态库是生成了,但是又

弹出另外一个对话框,提示某文件无法编译,该文件为我已前做好的备份文件,有中文名。删除该文件后,再编译,仍然提示该错,将BSP根目录的build.dat删除,

再编译,问题彻底解决。

看来很多静态库不是PB装好后本身就有的,而需要编译一些代码才能生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值