有很多涉及到編譯過程的工具.這篇文章里我們僅學習一個最基本的工具編譯一個簡單應用程序的過程(針對Series 60和UIQ).
命令行工具
第一個涉及到的工具就是bldmake:這個工具可以創(chuàng)建一個命令文件,你將用到這個文件來編譯并連接你的應用程序(abld).
Bldmake需要bld.inf文件來完成這些工作
Abld.bat文件是應用程序編譯的入口點.
依據你傳遞給abld命令的參數.將會產生如下文件:一個Visual C++工作區(qū)和項目文件(abld makefile vc6),一個Windows模擬器應用程序(abld build wins udeb)或一個真實Symbian設備的應用程序(abld build thumb urel).
VC6和Wins參數可以見名知義(VC6=Visual C++6,Wins=Windows).udeb則意味著”Unicode-Debug”,urel表示”Unicode-Release”.Unicode是一個字符編碼格式(有些類似ASCII但Unicode允許外文字符編碼(包括漢語)).Debug的意思是你將會產生關于你的應用程序的調試信息(大概是模擬器的版本信息),發(fā)布到真實設備上時將不會包含調試信息(已經發(fā)布了就不會再需要調試了)
需要在手機上調試代碼或跟蹤執(zhí)行過程?RFileLogger也許可以幫助你.這個class的功能非常強大而且很容易使用.
首先聲明一個文件日志的連接并且創(chuàng)建一個log文件
//打開日志文件服務的連接 RFileLogger iLog; iLog.Connect(); iLog.CreateLog(_L("MyLoggingDirectory"),_L("MyLogFile"),EFileLoggingModeOverwrite); //... //關閉log文件和服務器連接 iLog.CloseLog(); iLog.Close(); |
第3行的CreateLog函數有三個參數:
Log路徑
Log文件名
記錄模式 (EFileLoggingModeOverwrite|EFileLoggingModeAppend)
例如下列代碼,是我的log文件的full path(手機上的文件系統)
C:/Logs/MyLoggingDirectory/MyLogFile.
對我來說,我習慣把opening代碼放到我希望跟蹤的class的ConstructL()函數里面,然后在析構函數里closing.在真正編碼時,你最好檢測一下Connect和CreateLog是否返回了KErrNone.
一旦你完成了這些,你就可以向log文件中輸入文本和數據了?;镜拿顬椋?/p>
命令 |
Log文件 |
iLog.Write(_L("Hello World")) |
11/07/2003 4:00:13 Hello World |
iLog.WriteFormat(_L("Result=%d"),err) |
11/07/2003 4:00:13 Result=0 |
iLog.HexDump(aHeader,aHeader,myPtr,4) |
11/07/2003 4:00:13 myBuf:0000: 41 42 00 44 AB.D |
[!--empirenews.page--]
要是不希望記錄日期和時間,你可以使用這條語句來關閉它們。
iLog.SetDateAndTime(TBool aUseDate, TBool aUseTime) |
別忘了在MMP文件上加入flogger.lib,還有包含flogger.h頭文件?,F在可以編譯執(zhí)行你的程序了。
Stop!log文件還沒建立呢!正確!這沒辦法在代碼里完成,我們只能手工在C:/Logs/MyLoggingDirectory目錄中創(chuàng)建log文件,否則什么日志也不會記錄。不需要重新編譯。