WINCE PB编译不过各种错误集锦
2011-08-11 10:38
337 查看
本文将不择手段搜集WINCEPB的各种编译不过的错误并给出解决方案或是相关思路,搜集资料来源:本人编译出错后得到解决后的学习笔记,网上搜集的资料,朋友的教导等,后面将会详细备注,大家一起交流。文章一式两份,一份在博客上,另外一份放到论坛中,并实时更新。[电子技术论坛: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 bylqm,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 bein 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 aftersignature
}
一起以为是没找着TOP里面的"CECE",后来经魏公公指点,原来是之前生成的XIP.bin不是XIP模式的。
将processbib.exe,preromimage.bat两个文件放到D:\WINCE500\PLATFORM\SMDK2450\Files目录下,先copyfiles 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 ] LinkingC:\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 ] LinkingC:\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 -cBUILDMSG=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 ] SavingC:\WINCE500\PUBLIC\WCESHELLFE\Build.dat.
BUILD: [00:0000000111:PROGC ] Total of 0 pass zero files to compilein 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 -cBUILDMSG=Stop. NOLINK=1 PASS0ONLY=1 CLEANBUILD=1failed - 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, 1Errors
最后提示的错误:
Build for Windows CE (Release) (Built on Apr 14 200513: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 -cBUILDMSG=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 ] PrecompHeader 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 ] StaticLibraries 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 ] CsharpTargets 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, 2Errors
Build for Windows CE (Release) (Built on Apr 14 200513: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装好后本身就有的,而需要编译一些代码才能生成。
一:不能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 bylqm,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 bein 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 aftersignature
}
一起以为是没找着TOP里面的"CECE",后来经魏公公指点,原来是之前生成的XIP.bin不是XIP模式的。
将processbib.exe,preromimage.bat两个文件放到D:\WINCE500\PLATFORM\SMDK2450\Files目录下,先copyfiles 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 ] LinkingC:\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 ] LinkingC:\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 -cBUILDMSG=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 ] SavingC:\WINCE500\PUBLIC\WCESHELLFE\Build.dat.
BUILD: [00:0000000111:PROGC ] Total of 0 pass zero files to compilein 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 -cBUILDMSG=Stop. NOLINK=1 PASS0ONLY=1 CLEANBUILD=1failed - 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, 1Errors
最后提示的错误:
Build for Windows CE (Release) (Built on Apr 14 200513: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 -cBUILDMSG=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 ] PrecompHeader 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 ] StaticLibraries 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 ] CsharpTargets 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, 2Errors
Build for Windows CE (Release) (Built on Apr 14 200513: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装好后本身就有的,而需要编译一些代码才能生成。
相关文章推荐
- WINCE PB编译不过各种错误集锦
- WINCE PB编译不过各种错误集锦
- WINCE PB编译不过各种错误集锦
- mysql编译安装后各种常见错误集锦
- PB for WINCE 6编译时出现错误提示 don't know how to make atlsd.lib 的解决方法 U1073 U1077
- VMWare安装Vmtools编译不过,报"sh: line 1: 3815 段错误 ..."的错误的解决
- [Keil]ads工程移植到Keil MDK 编译出现的警告和错误解决
- VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPA
- XCode编译警告和错误解决方法集锦
- linux编译安装php5.4遇到错误:undefined reference to `libiconv_open'
- mini6410 WinCE visual studio 编译错误:error LNK2001: unresolved external symbol dpCurSettings
- mvn 编译错误java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V
- VS2010编译错误:是否忘记了向源中添加“#include "stdafx.h(转)
- VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPA
- wince编译问题集锦
- iOS--错误集锦--Capturing 'self' strongly in this block is likely to lead to a retain cycle
- 在Hadoop 2.3上运行C++程序各种疑难杂症(Hadoop Pipes选择、错误集锦、Hadoop2.3编译等)
- 有时候当你改动了xib   你调试,各种改的时候又没变化的时候
- 编译错误error: invalid&nbsp…
- nios ii编译错误之“couldn't allocate heap, Win32 error 487”