S60 Qt 開發環境配置指南
安裝之前需要下載以下內容:
ActivePerl 5.10.1 這是目前最新版本,S60 SDK需要perl 5.6.1以上版本
http://www.activestate.com/activeperl/
JRE Java runtime, S60 SDK 需要1.5以上的版本,我一向覺得Java版本管理混亂,下載最近的就好了
http://www.java.com/zh_CN/download/manual.jsp
S60 5th SDK, 之所以選擇第五版,是因為這是支持觸摸操作的版本,現在觸摸很流行嘛,另外就是我只在5800上成功地安裝了QT程序,貌似S60 5.0以后的版本更可靠些。
http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Symbian_C++/QuickStart.xhtml
Carbide 2.0的下載也在這里,不過下載需要你注冊Forum Nokia的帳號,注冊一個吧也不麻煩,以后去論壇問問題也用得到。
Qt 4.6 for Symbian,下載build好的 binary吧,簡單些,源代碼是不是真的能編譯過,我不太確定,Windows/Linux的編譯都很簡單 S60 的我還沒試過,但是我知道arm的版本用gcce是編譯通不過的,需要RVCT才行,但是RVCT不免費,所以還是用TrollTech編譯好的binary吧。
http://qt.nokia.com/developer/qt-4.6-beta-for-symbian-developers
安裝順序:
ActivePerl, JRE, S60 SDK, Carbide, Qt
注意看提示,Carbide安裝完了之后,還要運行程序菜單里面的一個 bat的,用來配置環境變量,別忘了。
運行下S60 模擬器,試試看吧,應該是一個和5800差不多的界面,某些程序啟動可能會報錯,無視之,其實Nokia內部的模擬器更不穩定,習慣鳥。
寫個程序看看?
先從普通的 S60程序開始吧,啟動 Carbide ,File->New->Symbian c++ project,然后選Gui Application, 會生成一個最簡單的Helloworld工程。
可能你會發現,Wizard運行完了,界面上什么都沒發生,仍然是一個Welcome,別急,那是因為Welcome視圖被最大化了,點右上角的 restore按鈕就好了。
編譯運行下吧,編譯沒通過?有可能,看log會發現是一個 Perl腳本的錯誤,導致Help編譯失敗,間接導致 cpp編譯失敗,因為少了個頭文件。。。
這事兒真是腦殘,囧,解決方法只能是吧 Help去掉了,打開Bld.inf 注釋掉 help的 mk,cpp里和help有關的幾行都注釋掉,應該就可以了。
在模擬器的 application 文件夾下,應該可以看到Helloworld程序的,運行也應該沒問題 ,只是顯示了個 Note。
從開始下載,到現在,我整整用了4個小時了,還差最后一步,就是QT。
還是從 File->new開始,選擇 Qt project,這個工程取名叫 QHelloWorld吧按照Wizard都選默認的就好,如果提示你沒有指定Qt 版本就指定一下,其實就是告訴Carbide的安裝目錄,選擇下bin的路徑而已,Qt版本號用 4.6.0就行。
編譯吧,應該會很順利,qt沒有help搗亂了。運行下看看吧,qt程序啟動后什么都沒有,就有個status pane?當然啦,默認的程序什么都沒干嘛。
來,我們給它加點東西,現在連退出按鈕都沒有。。。只能按 紅鍵 退出。
打開 Qhelloworld.ui 文件,會看到一個類似.Net 和 delphi的界面編輯器,從Windows->show view->other...里,把那幾個qt的view找出來,重點是那個widgets box,然后就可以編輯UI了,先放一個 按鈕上去吧,取名叫 exitButton.
然后 打開 Qhelloworld.h 添加
private slots:
void on_exitButton_clicked()
{
qApp->quit();
}
好了,這樣QhelloWorld程序的界面上就會有一個 叫 exitButton的按鈕,按一下就退出程序了。
好了,既然搞定了模擬器,下面就是要搞定手機了,畢竟手機程序很在硬件上跑起來才有意義。
首先,你需要一個 s60 5.0的手機,比如 5800 5530什么的,N97也行。
然后去 http://qt.nokia.com/phonedemos 這里下載一個 sis包,大約12Mb,手機下載太慢了,我是用筆記本下載,然后用藍牙傳到手機的。
或者你不想要那些實例程序,那么去Qt的安裝目錄找一個 qt.sis裝吧,只有運行庫。
安裝這個 sis,會給你安裝很多程序,無論問你什么都回答 yes ok就好了,相信吧,Qt和Nokia不會害你的。
這個 sis包括了,qt所需要的運行庫和一些demo程序,有了這個,你自己的qt程序就可以在手機上跑了。
讓Qt程序運行在手機上!
首先,我們需要編譯 Qt程序的armv5版本,在 build config里選擇 armv5 release,編不過?那是正常的,因為我們沒有RVCT,這東西不免費而且很貴。。。
還是用 GCCE吧,性能差點,湊合了吧。但是沒有 GCCE這個選項啊?是沒有,我也沒找到 :(
解決這個問題,首先要確認你裝了GCCE沒有,在你的 S60 SDK安裝目錄下 epoc32\tools\distrib\ 找一個 叫 arm-none XXXXXX的文件,安裝之。
我安裝了還是沒在Carbide看到 GCCE的選項啊,說實話,我也沒看到。
于是,我關掉這個工程,重新import一次,注意在選擇config的時候把下面的那個 filter去掉,就可以看到 gcce選項了。
下一步 做 sis包
比較簡單,打開工程的Properties, 選擇 build and configuration, 選擇 gcce config, 選擇 sis builder 頁,點add 按鈕添加,選一個pkg文件,QHelloworld.pkg,輸入sis包的文件名,比如 qhelloworld.sis,其他都用默認就好了。然后 build,就可以生成 sisx文件了,這是簽名的。
安裝之前需要下載以下內容:
ActivePerl 5.10.1 這是目前最新版本,S60 SDK需要perl 5.6.1以上版本
http://www.activestate.com/activeperl/
JRE Java runtime, S60 SDK 需要1.5以上的版本,我一向覺得Java版本管理混亂,下載最近的就好了
http://www.java.com/zh_CN/download/manual.jsp
S60 5th SDK, 之所以選擇第五版,是因為這是支持觸摸操作的版本,現在觸摸很流行嘛,另外就是我只在5800上成功地安裝了QT程序,貌似S60 5.0以后的版本更可靠些。
http://www.forum.nokia.com/Technology_Topics/Development_Platforms/Symbian_C++/QuickStart.xhtml
Carbide 2.0的下載也在這里,不過下載需要你注冊Forum Nokia的帳號,注冊一個吧也不麻煩,以后去論壇問問題也用得到。
Qt 4.6 for Symbian,下載build好的 binary吧,簡單些,源代碼是不是真的能編譯過,我不太確定,Windows/Linux的編譯都很簡單 S60 的我還沒試過,但是我知道arm的版本用gcce是編譯通不過的,需要RVCT才行,但是RVCT不免費,所以還是用TrollTech編譯好的binary吧。
http://qt.nokia.com/developer/qt-4.6-beta-for-symbian-developers
安裝順序:
ActivePerl, JRE, S60 SDK, Carbide, Qt
注意看提示,Carbide安裝完了之后,還要運行程序菜單里面的一個 bat的,用來配置環境變量,別忘了。
運行下S60 模擬器,試試看吧,應該是一個和5800差不多的界面,某些程序啟動可能會報錯,無視之,其實Nokia內部的模擬器更不穩定,習慣鳥。
寫個程序看看?
先從普通的 S60程序開始吧,啟動 Carbide ,File->New->Symbian c++ project,然后選Gui Application, 會生成一個最簡單的Helloworld工程。
可能你會發現,Wizard運行完了,界面上什么都沒發生,仍然是一個Welcome,別急,那是因為Welcome視圖被最大化了,點右上角的 restore按鈕就好了。
編譯運行下吧,編譯沒通過?有可能,看log會發現是一個 Perl腳本的錯誤,導致Help編譯失敗,間接導致 cpp編譯失敗,因為少了個頭文件。。。
這事兒真是腦殘,囧,解決方法只能是吧 Help去掉了,打開Bld.inf 注釋掉 help的 mk,cpp里和help有關的幾行都注釋掉,應該就可以了。
在模擬器的 application 文件夾下,應該可以看到Helloworld程序的,運行也應該沒問題 ,只是顯示了個 Note。
從開始下載,到現在,我整整用了4個小時了,還差最后一步,就是QT。
還是從 File->new開始,選擇 Qt project,這個工程取名叫 QHelloWorld吧按照Wizard都選默認的就好,如果提示你沒有指定Qt 版本就指定一下,其實就是告訴Carbide的安裝目錄,選擇下bin的路徑而已,Qt版本號用 4.6.0就行。
編譯吧,應該會很順利,qt沒有help搗亂了。運行下看看吧,qt程序啟動后什么都沒有,就有個status pane?當然啦,默認的程序什么都沒干嘛。
來,我們給它加點東西,現在連退出按鈕都沒有。。。只能按 紅鍵 退出。
打開 Qhelloworld.ui 文件,會看到一個類似.Net 和 delphi的界面編輯器,從Windows->show view->other...里,把那幾個qt的view找出來,重點是那個widgets box,然后就可以編輯UI了,先放一個 按鈕上去吧,取名叫 exitButton.
然后 打開 Qhelloworld.h 添加
private slots:
void on_exitButton_clicked()
{
qApp->quit();
}
好了,這樣QhelloWorld程序的界面上就會有一個 叫 exitButton的按鈕,按一下就退出程序了。
好了,既然搞定了模擬器,下面就是要搞定手機了,畢竟手機程序很在硬件上跑起來才有意義。
首先,你需要一個 s60 5.0的手機,比如 5800 5530什么的,N97也行。
然后去 http://qt.nokia.com/phonedemos 這里下載一個 sis包,大約12Mb,手機下載太慢了,我是用筆記本下載,然后用藍牙傳到手機的。
或者你不想要那些實例程序,那么去Qt的安裝目錄找一個 qt.sis裝吧,只有運行庫。
安裝這個 sis,會給你安裝很多程序,無論問你什么都回答 yes ok就好了,相信吧,Qt和Nokia不會害你的。
這個 sis包括了,qt所需要的運行庫和一些demo程序,有了這個,你自己的qt程序就可以在手機上跑了。
讓Qt程序運行在手機上!
首先,我們需要編譯 Qt程序的armv5版本,在 build config里選擇 armv5 release,編不過?那是正常的,因為我們沒有RVCT,這東西不免費而且很貴。。。
還是用 GCCE吧,性能差點,湊合了吧。但是沒有 GCCE這個選項啊?是沒有,我也沒找到 :(
解決這個問題,首先要確認你裝了GCCE沒有,在你的 S60 SDK安裝目錄下 epoc32\tools\distrib\ 找一個 叫 arm-none XXXXXX的文件,安裝之。
我安裝了還是沒在Carbide看到 GCCE的選項啊,說實話,我也沒看到。
于是,我關掉這個工程,重新import一次,注意在選擇config的時候把下面的那個 filter去掉,就可以看到 gcce選項了。
下一步 做 sis包
比較簡單,打開工程的Properties, 選擇 build and configuration, 選擇 gcce config, 選擇 sis builder 頁,點add 按鈕添加,選一個pkg文件,QHelloworld.pkg,輸入sis包的文件名,比如 qhelloworld.sis,其他都用默認就好了。然后 build,就可以生成 sisx文件了,這是簽名的。