『前言』
您是一個正在開始學習電腦程式語言C/C++,恰好擁有一台Pocket PC的人嗎?還是一個 Windows Mobile的程式設計師,常在在等公車或是吃飯不經意時,在腦中浮現一行 一行的code卻沒有辦當場編寫然後測試看能不能跑?甚至是一個瘋狂programmer,想要測試自己的功力,想在一個手掌大小的螢幕上寫成一個幾千甚至幾萬行的程式?或只是PPC玩到爁,想找點新鮮的玩意兒試試的人?

那,就得試試看Pocket GCC - 一個可以讓你在PDA上直接寫出PPC 2002/2003可用程式的C/C++程式編輯器。


『功能與特色』
PocketGCC有以下的功能與特色
1. 有可以在Pocket PC上直接執行的C/C++ Compiler
2. 有幾乎涵蓋所有標準C/C++功能與函數。
3. 含有Pocket PC 2002 SDK的libraries,可以直接可以Compile, build然後run 普通Windows Mobile eVC的原始碼檔,不需經過任何轉檔。
4. 包括一系列編寫程式會用到的工具,像是assembler, linker 和 archiver。
想要知道更多資訊,可以是看看PocketGCC的"官方"網站。


『基本需求』
1. ARM處理器的Windows Mobile系統應該都可以,我是用H2210(English ROM 1.1)上測試的~
2. PocketGCC安裝檔


『程式安裝』
PocketGCC的安裝相當簡單。
1. 先在此處下載安裝檔。所提供的是一個zip壓縮檔,在desktop下可以自行先解開包括檔案如下:


包括三個cab安裝檔:
cmd.arm.cab - command-line console (PocketConsole)視窗的程式。
pocketconsole.arm.cab - Pocket PC console模式的驅動程式 (PocketConsole需要裝此東東才能執行)。
pgcc.ARM.CAB - PocketGCC主程式

2. 將此三安裝檔透過ActiveSync先複製到Pocket PC裡以進行安裝。建議將檔案放置於記憶卡(例如:SD Card)裡,以免安裝時,內建記憶體空間不夠,。


3. 在檔案總管理,可以不一順序點選檔案安裝。點取安裝後cab檔會自動消失。安裝的路徑是固定的,無法選擇。PocketConsole程式檔名為CMD.exe,安裝於\Windows之下。PocketGCC檔案全被安裝在名為\pgcc的檔案夾內。




4. 就這樣而已,沒有第四步


『使用 PocketConsole』
在PocketGCC裡,compile程式去必須要在console進行完成的。
如果有在command-line編寫程式或是常用DOS的人,很容易就可以上手的,因為PocketGCC下使用語法與其是幾乎相同的。

1. 檔案總管理按CMD.exe來開啟PocketConsole,開啟後視窗顯示如下:


2. PocketConsole的使用方式與Windows裡的DOS相同,例如dir來顯示所處路徑的檔案和檔案夾。執行help可以來顯示所有console所支援的指令。


試試看吧,在PPC下黑底白字的DOS下使用執行指令還蠻有趣的呢,也可以當做練習(雖然好像沒有什麼用

3. 去 File -> Properties裡可以調整console顯示操作設定包括字型和視窗等選項。








勾選QuickEdit Mode就可以複製和貼上console上的字。Insert Mode和平常keyboard上Insert(Ins)的功能相同。


『使用PocketGCC 編輯執行"Menu"範例』
PocketGCC裡附了一個簡單的範例,包含了執行compile指令的.bat檔,執行後會自動compile內附的程式。所附的範例,是一個Pocket PC 2003 SDK的example,是一個GUI程式喔

1. 在PocketConsole下,換到\pgcc的路徑下。

2. pgcc目錄下包含了所有編輯程式所需工具,包括cc1plus.exe,C/C++ compiler。至於使用語法,其實就是GNU Compiler Collection (GCC)的使用語法,此篇先不做詳細解釋了~

接著換到menu 範例下(cd \pgcc\samp),然後執行所附的menu.bat檔。


此檔其實執行了以下的指令:
\pgcc\cc1plus \pgcc\samp\menu\menu.cpp -o \pgcc\samp\menu\menu.s -I \pgcc\include -I \pgcc\samp\menu -include \pgcc\fixincl.h -fms-extensions
\pgcc\as \pgcc\samp\menu\menu.s -o \pgcc\samp\menu\menu.o
\pgcc\cpp0 \pgcc\samp\menu\menu.rc -o \pgcc\samp\menu\menu.rc.p -I \pgcc\include -I \pgcc\samp\menu -DRC_INVOKED -include \pgcc\fixincl.h
\pgcc\windres \pgcc\samp\menu\menu.rc.p -o \pgcc\samp\menu\menu.rc.o --include-dir \pgcc\samp\menu
\pgcc\ld \pgcc\samp\menu\menu.o \pgcc\samp\menu\menu.rc.o -o \pgcc\samp\menu\menu.exe -L \pgcc\lib -l cpplib -l corelibc -l coredll -l aygshell -l runtime -l portlib

Compiled後的畫面如下:


跑完後如果無錯,就可以在該目錄下找到compiled成功的menu.exe檔~


3. 用檔案總管找到menu.exe,點一下就可以執行,畫面如下:

此程式展現一些GUI compenets的運用,譬如hold-and-click在主畫面就會出現拉下選單,另外還有最底下的menu bar的運用喔~


『PocketGCC的未來』
PocketGCC強大的功能不僅於此,根據作者的網站,他未來打算加入以下等東西:
1. PDA可用的IDE (Integrated Development Enviroment)
2. MFC (Microsoft Foundation Class) 的支援
3. Local DLL 編寫的支援

功能真是強大啊,真無法想像現在PDA能做的事到底還有什麼


『後續』
如果很多人像我,只是想練習一些C/C++的程式編輯,像是最簡單的"helloworld",那要怎麼compile/build/run呢?有人有興趣的話,我可以改個時間再給他寫一篇

完~

這是小弟第一次寫"使用教學"報告,因為完全沒有經驗,如果寫的不好的地方,還敬請見諒

這裡所謂基本教學,是說明PocketGCC的下載、安裝、和基本使用過程,希望對有些人會有幫助。因為時間的關係,先寫這些,看後來想到缺少什麼要補充的,後來會再多加的