本文将不择手段收集WINCE 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 by lqm,2009.07.11
//EdbgOutputDebugString(“*OEMMapMemAddr() = 0x%xrn”,*(LPDWORD) OEMMapMemAddr (dwImageStart, dwImageStart + ROM_SIGNATURE_OFFSET));
EdbgOutputDebugString(“*OEMMapMemAddr() = 0x%xrn”,*(LPDWORD) OEMMapMemAddr (0x80200000,0x80200040));
EdbgOutputDebugString(“dwImageStart:0x%xrn”,dwImageStart);
EdbgOutputDebugString(“ROM_SIGNATURE_OFFSET:0x%xrn”,ROM_SIGNATURE_OFFSET);
EdbgOutputDebugString(“ROM_SIGNATURE:0x%xrn”,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%Xrn”, dwImageStart + ROM_SIGNATURE_OFFSET + sizeof (DWORD)); // right after signature
}
一同以为是没找着TOP里边的“CECE”,后来经魏公公点拨,原来是之前生成的XIP.bin不是XIP形式的.
将processbib.exe,preromimage.bat两个文件放到D:WINCE500PLATFORMSMDK2450Files目录下,先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:WINCE500publicrdpoaklibA
RMV4Iretailcetscbase.lib
BUILD: [00:0000000865:PROGC ] Compiling WINCE500PUBLICRDPOAKUITCETSCCLIP directory.
BUILD: [01:0000000872:PROGC ] Compiling .tscclip.cpp
BUILD: [01:0000000875:PROGC ] Linking C:WINCE500publicrdpoaklibarmV4Iretailcetscclip.lib
BUILD: [00:0000000878:PROGC ] Compiling WINCE500PUBLICRDPOAKUITCETSCUI 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 WINCE500PUBLICWCESHELLFEOAKWATSONDWUI
BUILD: [00:0000000106:PROGC ] Scan WINCE500PUBLICWCESHELLFEOAKWATSONDWCTLPNL
BUILD: [00:0000000109:PROGC ] Saving C:WINCE500PUBLICWCESHELLFEBuild.dat.
BUILD: [00:0000000111:PROGC ] Total of 0 pass zero files to compile in 14 directories.
BUILD: [00:0000000112:PROGC ] Building generated files in WINCE500PUBLICWCESHELLFEOAKCTLPNLcplmain.
BUILD: [00:0000000119:PROGC ] Building generated files in WINCE500PUBLICWCESHELLFEOAKCTLPNLADVBACKLIGHT.
BUILD: [00:0000000126:PROGC ] Building generated files in WINCE500PUBLICWCESHELLFEOAKCTLPNLCONNPNL.
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