站所有文章由本站和原作者保留一切權力,僅在保留本著作權資訊、原文連結、原文作者的情況下允許轉載,轉載請勿刪改原文內容, 並不得用於商業用途。 謝謝合作。
原文連結:http://www.cuteqt.com/blog/?p=295
筆
者最近比較勤勞, 花了一天的時間把qt-s60的環境安裝並測試了一下, 發現還挺有意思, 特此memo。
聽說諾X亞內部已經開始使用qt開發程式, 所以各位看官也要抓緊拉, 如果你掌握了這門技術,
沒準兒以後就能在諾X亞大顎家裡謀個一官半職……後半輩子就不用愁了,呵呵~
網上關於Qt For S60的安裝和配置已經有了一些現成的文章, Qt文檔裡也有一些內容, 但筆者感覺還是比較零散不夠系統, 一方面語言的問題, 另一方面找起來太廢力氣。 本文算是集大成,哈哈(吹一把)~ 加張圖,證明吹牛隻是咱的副業……
開發過程需要用到的軟體包及其主要作用
Windows環境
需要一台裝有Windows的機器, 虛擬機器也可, 但要記憶體配置1G及以上, 太少了不行。 筆者使用虛擬機器裝Windows XP, 記憶體1G。 C盤保證5G以上的剩餘空間(還不見得夠用)。
諾X亞手機一部
手機中的S60系統是3.1及以上版本。 本文以Nokia N95 8GB為藍本。
Nokia PC Suite
這個是Windows和Nokia手機串連的工具, 後面往手機上安裝自己的程式時需要用到。 在Nokia網站下載:
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_7_1_26_1_chi_sc_web.exe
Qt for S60
下載在http://pepper.troll.no/s60prereleases/
這個包當然是必不可少的。 最近的版本被命名為“Garden”, 多麼的詩情畫意啊! Trolltech的人還真有藝術細胞。
Perl和JRE
這兩個工具是S60 SDK運行需要的工具。 需要注意的是Perl要求必須是5.6.1版本, 高低都不行。 下載在
http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi
JRE隨便一個比較新的版本就行, 下載最新版本到sun的網站:
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jre-6u14-oth-JPR@CDS-CDS_Developer
Carbide C++ 2.0
必裝工具, 而且低版本的不行。 下載在:
http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Carbide.c++/
需要註冊帳號並登入才能下載。
S60 SDK 3rd Edition FP1
必須是3rd FP1以上版本。 我在forum nokia網站上還找到了3rd FP2, 但不如這個版本好找, 推薦下載此版本, 下載在:
http://sw.nokia.com/id/577ad48d-290c-4bb5-8bdf-779ea8a5bc6c/S60_5th_Edition_SDK_v1_0_en.zip
需要註冊和登入。 這個包有三百多兆, 下載比較耗時較長。 安裝後要佔用將近3G的空間, 可是個絕對的大部頭。
另外注意如果你用的是Nokia N97,需要去下載N97對應版本的SDK; Nokia 5800 XpressMusic需要使用 5th Edition 的SDK。 其他的配置方式與本文所述基本一致。
Open C/C++的外掛程式
S60 SDK 3.1需要安裝此包, 高的版本已經帶了此工具就不需要單獨下載安裝了。 下載在:
http://www.forum.nokia.com/main/resources/technologies/openc_cpp/
需要註冊和登入
安裝和配置步驟
1、先裝Perl和JRE, 隨便選擇路徑即可, 對應的環境變數會自動化佈建。
2、把Carbide C++ 2.0, S60 SDK 3rd Edition FP1, Open C++分別安裝到預設路徑下, 順序沒有什麼關係。 安裝SDK過程中會提示安裝gcce編譯器, 這個是用來編譯手機上的程式用的toolchain。
3、將qt for S60的包解壓縮到C:/, 取個簡單的目錄名, 比如叫qt-s60.
4、更新Rpipe。 進入C:/Symbian/9.2/S60_3rd_FP1/, 將此目錄下的RPipe_3.1.zip解壓縮到當前位置。
5、
更新先行編譯的Qt S60庫, 這是交叉編譯需要的。
將C:/qt-s60/qts60binaries/3.x/qtlibs-4.5.0-garden.exe
拷貝到C:/Symbian/9.2/S60_3rd_FP1/並運行。 這個包裡帶了Qt給s60 arm系統編譯的二進位檔案,
交叉編譯器時需要連結。
6、從開始菜單裡找到Programs->Carbide.C++ v2.0->Configure
environment for WINSCW command line, 運行此命令。 該命令會配置編譯x86版本的S60程式需要的環境變數,
這樣在普通的windows命令列也可以使用這些環境了。
編譯Qt for S60的模擬器版本
S60 SDK提供了一個案頭版本的S60環境模擬器, 我們要把Qt編譯成對應的版本就可以在模擬器上運行和調試Qt程式了。
首先“開始”->”運行”->”cmd”開啟一個Windows命令列終端,
cd c:/qt-s60
set PATH=c:/qt-s60/bin;%PATH% //注意命令格式和linux環境下的區別, 另外注意不要隨便加空格。
configure -platform win32-mwc -xplatform symbian-abld //這個步驟會產生qmake工具和各個目錄下的Makefile, 耗時較長
make debug-winscw //編譯命令, 耗時較長編譯對記憶體要求較高是筆者實踐的經驗, 最開始筆者的虛擬機器分配512M記憶體, 這一步總是出錯, 而且是很嚇人的某某工具內部錯誤, 後來記憶體增加到1G就沒有問題了。
上面的命令如果都能成功運行, Qt的模擬器版本就編譯出來了。 後面我們要找一個小qt程式來測試環境是否正確配置。
運行測試程式
隨
便選一個Qt程式, 也可以是自己寫的, 筆者用Qt內建的例子來測試。 提醒大家注意的是這個程式必須和S60S SDK環境放在同一個盤符下,
在我們的環境裡就是必須放在C盤。 因為S60的環境去找檔案的時候前面沒有給出盤符,
如果放到其他分區下就會出現找不到Symbian下的檔案的問題。
進到qt-s60目錄下的examples/painting/basicdrawing, 運行命令:
make debug-winscw //編譯
make run //在模擬器裡運行
這時會先彈出Windows的防火牆介面, 選“Unblock”, 再彈出S60模擬器介面, 並且會彈出一個Open C++的一個類似許可證的介面, 要關閉這個介面程式才會運行。 好了, 順利的話你應該就能看到程式跑在模擬器裡的樣子了。
編譯和發布手機程式
將你的手機串連與電腦的PC Suite串連。
安裝Qt的基本庫
找
到Qt的先行編譯包, 在C:/qt-s60/qts60binaries/5.0/qt_libs_armv5_udeb.sisx, 雙擊此檔案PC
Suite會自動安裝, 這個包只需要安裝一次, 除非你升級Qt版本。 注意, 如果你的手機是像筆者一樣有多個儲存空間,
請選擇安裝在手機(而不要選安裝在儲存卡), 這其中的道理筆者也沒有弄明白, 只是不安裝在手機上就運行不起來。
安裝pips包
如果你的手機裡沒有帶這個軟體, 那麼需要安裝一下。 從http://pepper.troll.no/s60prereleases/patches/pips_nokia_1_3_SS.sis
下載後雙擊安裝。 此包只需安裝一次。
編譯和安裝例子程式
還是以剛才的basicdrawing程式為例。
進入程式目錄, 運行命令:
make debug-gcce //編譯
createpackage
-i basicdrawing_gcce_udeb.pkg //這一步筆者這裡出錯了, 不知道為什麼,唉;
後來改用了rvct的編譯器就成功了。
大家試一下看看gcce能成功嗎?給我留言。(後來筆者換用另外一台機器的環境這個步驟就成功了,事實證明這個免費提供的toolchain也是可以用
的。 至於筆者環境究竟哪裡除了問題還需要繼續深入研究。)
如果使用商業版的RVCT編譯器, 這裡的編譯和打包命令略有不同, 應為:
make debug-armv5
createpackage -i basicdrawing_armv5-udeb.pkg
PC Suite會自動彈出安裝介面, 手機端也會彈出安裝介面, 與前面安裝qt庫一樣。
Qt的examples裡面的例子預設安裝在手機菜單“應用程式”同級的“QtExamples”檔案夾下, 而如果是你自己寫的程式, 則會安裝在“應用程式”檔案夾內, 大家可別找不到程式在哪兒哦~
好了, 快點來感受一下Qt程式在手機上的效果吧。 顯示方面和在模擬器上沒有什麼區別, 只是筆者發現Qt程式對鍵盤的處理好像還沒有做好, 上下鍵都不好使, 對於鍵盤操作的手機可真讓人鬱悶了。 這個問題還需要繼續研究一下。
總的來說配置Qt For S60的環境雖然步驟比較多, 但一步一步做下來還算是個比較傻瓜的過程。 唯一的問題是如果一切順利還好辦, 萬一哪一步出點什麼錯就麻煩了, 基本上有任何問題都會成為不可調和的矛盾, 這一點讓人覺得太不爽了。
本站所有文章由本站和原作者保留一切權力,僅在保留本著作權資訊、原文連結、原文作者的情況下允許轉載,轉載請勿刪改原文內容, 並不得用於商業用途。 謝謝合作。