解决WINCE6.0新建工程编译出错的问题
作者:LoongEmbedded(kandi)
時間:2011.8.17
類別:WINCE系統(tǒng)開發(fā)
********************************LoongEmbedded********************************
基于WINCE6.0系統(tǒng),根據(jù)PDA模板新建了工程之后,現(xiàn)把遇到的問題和解決的方法記錄一下
?
1.???? 編譯系統(tǒng)找不到atls.lib
?
這里要特別注意的是,發(fā)生類似這樣的錯誤的時候,如果從\WINCE600\build.err文件來找錯誤的原因,很難,因為只有下面的信息:
F:\WINCE600\build.log(1) : error SYSGEN0000: error(s) in sysgen phase
這里只是告訴我們在sysgen階段的時候出錯,并沒有告訴我們更有的出錯信息,也就很難確定編譯出錯的原因,但我們可以從\WINCE600\buildl.og中獲取更多有效的信息,如下:
Directory: F:\WINCE600\PUBLIC\SCRIPT\CESYSGEN
TARGETNAME: jscript
makefile.def: Including F:\WINCE600\public\common\oak\misc\sources.ReleaseType_OAK
NMAKE : fatal error U1073: don't know how to make 'F:\WINCE600\OSDesigns\sfck6410\sfck6410\Wince600\SMDK6410_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\atls.lib'
Stop.
從上面的信息可以分析是在編譯SCRIPT這部分的時候,找不到所以來的atls.lib這個庫文件,而atls.lib對應(yīng)于Active Template Library(ATL)這個組件,選上這個組件后就可以解決這個問題
圖1
JScript是由微軟公司開發(fā)的活動腳本語言,是微軟對ECMAScript規(guī)范的實現(xiàn),而ECMAScript是一種由歐洲計算機制造商協(xié)會(ECMA)通過ECMA-262標(biāo)準(zhǔn)化的腳本程序設(shè)計語言。這種語言在萬維網(wǎng)上應(yīng)用廣泛,它往往被稱為JavaScript或JScript,但實際上后兩者是ECMA-262標(biāo)準(zhǔn)的擴展。
?
活動模板庫(ATL Active TEmplate Library),是一種微軟程序庫,支持利用C++語言編寫ASP代碼以及其它ActiveX程序。如果網(wǎng)絡(luò)開發(fā)人員需要跟蹤客戶的請求,那么可以編寫通用網(wǎng)關(guān)接口(CGI common gateway interface)程序,如果網(wǎng)絡(luò)服務(wù)器是微軟公司的網(wǎng)絡(luò)信息服務(wù)器(IIS internet information server),那么還可以在網(wǎng)頁中嵌入腳本語言。這種網(wǎng)頁稱為ASP頁面,后綴名稱為.asp。在ASP頁面中的腳本語言將會首先被服務(wù)器解釋執(zhí)行,然后傳送到用戶端。另外的一種方法是將腳本語言先編譯為可執(zhí)行文件,這種能夠被編譯為可執(zhí)行文件的腳本程序通常是用C++這種面向?qū)ο蟮木幊陶Z言編寫的。由于可編譯程序的運行速度明顯優(yōu)于腳本程序,因此,網(wǎng)頁的運行速度明顯變快。由于C++程序同操作系統(tǒng)結(jié)合得更為緊密。,因此,利用ATL編寫的網(wǎng)頁還有更多的優(yōu)點。不過,用C++寫程序也要比寫腳本語言程序用的復(fù)雜程度高,消耗時間也要來得長一些。
?
通過活動模板庫,可以建立COM組件,然后通過ASP頁面中的腳本對COM對象進行調(diào)用。微軟公司稱COM對象的運行速度更快,穩(wěn)定程度也更強。這種COM組件可以包含屬性頁、對話框等等控件。
?
2.???? 解決了上面這個問題,接下來遇到編譯系統(tǒng)找不到SDcardlib.lib的問題
BUILD: [01:0000005515:INFO? ] Directory: F:\WINCE600\PLATFORM\SMDK6410\SRC\DRIVERS\WIFI_SDIO\WLAN
BUILD: [01:0000005516:INFO? ] TARGETNAME: SDIO8686
BUILD: [01:0000005517:INFO? ] makefile.def: Including F:\WINCE600\public\common\oak\misc\sources.ReleaseType_PLATFORM
BUILD: [01:0000005518:ERRORE] NMAKE :? U1073: don't know how to make 'F:\WINCE600\OSDesigns\sfck6410\sfck6410\Wince600\SMDK6410_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\SDcardlib.lib'
BUILD: [01:0000005519:INFO? ] Stop.
由上面的信息可以判斷,在編譯SMDK6410\SRC\DRIVERS\WIFI_SDIO\WLAN的時候,編譯系統(tǒng)提示找不到SDcardlib.lib,這說明WLAN的sources文件會用到SDcardlib.lib,選擇了Device Drivers->SDIO->SDIO Memory->SD Memory組件就可以解決這個問題
圖2
?
3.???? 解決了上面這個問題,接下來遇到編譯系統(tǒng)找不到ddraw.lib的問題
BUILD: [00:0000006675:PROGC ] Building LINK Pass in F:\WINCE600\PLATFORM\SMDK6410\SAMPLES\MFC\MFC_DecodeDemo\MfcDemo\ directory.
BUILD: [01:0000006689:ERRORE] NMAKE :? U1073: don't know how to make 'F:\WINCE600\OSDesigns\sfck6410\sfck6410\Wince600\SMDK6410_ARMV4I\cesysgen\sdk\lib\ARMV4I\retail\ddraw.lib'
BUILD: [01:0000006691:ERRORE] NMAKE.EXE TargetExeFiles? -i -c BUILDMSG=Stop.? BUILDROOT=F:\WINCE600\PLATFORM\SMDK6410 CLEANBUILD=1 LINKONLY=1 NOPASS0=1 failed - rc = 2
由上面的信息可以判斷,在編譯SMDK6410\SAMPLES\MFC\MFC_DecodeDemo\MfcDemo的時候,編譯系統(tǒng)提示找不到ddraw.lib,這說明WLAN的sources文件會用到ddraw.lib,選擇了Core OS->Graphics and Multimedia Technologies->Graphics->DirectDraw組件就可以解決這個問題
圖3
這樣就可以解決了編譯出錯的信息,后面就可以基于這個工程文件來根據(jù)我們系統(tǒng)所需的功能來添加相應(yīng)的組件了。
總結(jié)
以上是生活随笔為你收集整理的解决WINCE6.0新建工程编译出错的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于WINCE6.0+S3C6410的背
- 下一篇: WINCE6.0在控制面板添加控制面板应