文章目錄
Qt for the Symbian platform Requirements
Qt for the Symbian platform requires the following software installed on your development PC:
- Carbide.c++ v2.0.0 or higher
- Note:
It may be necessary to update the Carbide compiler. See here
for instructions how to check your compiler version and how to patch it, if needed.
- ActivePerl v5.6.1 build 638
- S60 Platform SDK 3rd Edition FP1 or higher
- Open C/C++ v1.6.0 or higher
. Install this to all Symbian SDKs you plan to use Qt with.
- Building Qt tools from scratch requires MinGW 3.4.5 or higher
, or another windows compiler.
- Building Qt libraries requires RVCT
2.2 [build 686] or later, which is not available free of charge.
Running Qt on real device requires the Open C to be installed on the device. The Open C installation packages are embedded into qt_installer.sis
,
which is included in Qt for Symbian binary package. If you are building
Qt from scratch, you can find the required packages in the Symbian SDK
where you installed Open C/C++:
- nokia_plugin/openc/s60opencsis/pips_s60_<version>.sis
- nokia_plugin/openc/s60opencsis/openc_ssl_s60_<version>.sis
- nokia_plugin/opencpp/s60opencppsis/stdcpp_s60_<version>.sis
If you wish to do hardware debugging with Carbide or run
applications in real devices using "make run" command, TRK must be
installed to the device. Note:
TRK is not required if you just want to install and run applications manually on the device.
Application TRK
. Choose
the correct installation package based on the S60 version of your
device (S60_<S60-version>_app_trk_<TRK-version>.sisx).
網址:http://doc.trolltech.com/4.6-snapshot/requirements-symbian.html
Frequently Asked Questions (FAQ) for Qt for SymbianQ: Do you support Carbide.c++ v1.2?
A: No. Recommended Carbide version to use is 2.0.2 and up.
Q: Which SDKs are supported?
A: Qt has been tested with the S60 3.1, 3.2, 5.0 and N97 SDK.
Q: What tools do I need to develop an application with Qt for Symbian?
A: See http://doc.trolltech.com/4.6-snapshot/requirements-symbian.html
Q: What platforms does Qt for Symbian support?
A: See README.symbian file.
Q: Which Qt modules are currently working on Symbian?
A: See README.symbian file.
Q: Which new Qt modules are coming in the next release?
A: TBA
Q: When is the next release?
A: TBA
Q: Which parts are currently left out of QtCore?
A: QtConcurrent not ported, QProcess doesn’t support streams, and
QSettings not using Symbian specific storages i.e. Central Repository
Q: Which parts are currently left out of QtGui
A: Printing and accessibility.
Q: Which parts are currently left out of QtNetwork?
A: No support for IPv6 and no support for multicast.
Q: What input methods are supported in the current release?
A: Multitap and predictive text in any language, as well as virtual keyboard on touch based devices.
Q: Which devices has Colossus release been tested on?
A: N78, N79, N95, N96, N97, 5800 XpressMusic and 6290
Q: I'm getting an error when trying to run example.exe, can you help me ?
A: Before sending email to feedback list please check that you have
set your enviroment variables correctly and that you have patched your
environment according to installation notes.
Make sure you have patched your x86 compiler by typing in command prompt:
mwccsym2.exe -version
Expected output is:
Version 3.2.5 build 482 (Build 482)
The build number should be 482 or later.
Q: I give up. I need help from the mailing list. What should I include?
A: When sending email to feedback list please include the following information in your post:
- Executable that you are trying to run.
- Environment that you are working with e.g. S60 5.0 v.1.0
- Call stack of the error occuring, see section the question about how to obtain call stack from carbide.
Q: How do I get call stack from Carbide 2.0?
A: First you need to import your project to carbide in order to
debug it. Select file->import->Symbian OS->Symbian OS bld.inf
file If you can’t find bld.inf under your project directory you first
need to run bldmake bldfiles from command prompt. In order to catch all
errors occuring you need to check all but c++ exceptions under x86
exceptions tab in debug configurations. When running debug Carbide will
stop at the point of error occuring. From Debug View select the call
stack under thread saying suspended and copy (ctrl+c) it and paste it
to the email you are about to send.
Q: How do I load my plugin? I tried loading it from /sys/bin but it fails.
A: In Qt for Symbian we had to implement plugin stubs to get around
the need for AllFiles capability to access /sys/bin and some other
issues. Plugin stubs are files with the same base name as the actual
plugin dll but with a “.qtplugin” suffix. They need to be in some
accessible location. For private plugins this is typically the
application’s private dir, but for public plugins it can be anywhere;
e.g. Qt extension plugins have default public base dir
“/resource/qt/plugins” (which can be queried with
QLibraryInfo::location(QLibraryInfo::PluginsPath, if needed at compile
time, or via the $$QT_PLUGINS_BASE_DIR variable defined in the
data_caging_paths.prf feature file, if needed in the .pro file). If
either the stub or the actual plugin.dll are missing, the plugin
loading will fail. The stub contents are mostly irrelevant. Only the
file name and timestamp matter (the stub timestamp is checked in plugin
caching). If the DEPLOYMENT variable is used properly, the stub gets
generated and deployed automatically and you don’t need to worry about
it. See http://doc.trolltech.com/4.6-snapshot/qmake-variable-reference.html#deployment
for details.
When loading plugins with QPluginLoader, do not give the plugin dll
itself as a target, use the stub file instead, although for convenience
you can use either “.dll” or “.qtplugin” as the suffix. E.g. if you
have the plugin stub named as “c:/foo/bar.qtplugin”, and the actual
plugin as is located at “c:/sys/bin/bar.dll”, you can use either
QPluginLoader(“c:/foo/bar.dll”) or QPluginLoader(“c:/foo/bar.qtplugin”)
to load the plugin. So basically you can treat the stub as you would
the actual plugin on other platforms.
Q: Qt applications get an additional white window with a black cursor. How can I fix this?
A: This is a result of having the ‘stdioserver’ package installed.
This application is a server process that redirects STDIN and STDOUT to
a console window by default. This behavior can be be changed by
modifying the configure file located at “C:/system/data/config.ini”.
The relevant change involves editing the [STDIO] section and changing
STDIN and STDOUT to be:
STDIN = MEDIA1
STDOUT = MEDIA4
MEDIA1 and MEDIA4 should be of the type ‘file’ and should have a
path pointing to “in.txt” or “out.txt” respectively and located in the
same directory as “config.ini”. You must also ensure that the “in.txt”
file actually exists when making the above change. The above change
will work both in the emulator as well as in hardware where the path
inside the SDK is $EPOCROOT/winscw/c/system/data.
Q: Installing Qt on N78 with firmware PR 1.0 fails. How can I work around it?
A: Please upgrade device’s firmware to a newer release.
Q: When installing “qt_installer.sis” or “qt_demos.sis” it fails with error “-16”. How can I work around it?
A: Try installing it again. If that fails, try installing the Open C packages + “qt.sis” + “qtwebkit.sis” one by one.
網址:http://qt.gitorious.org/qt/pages/SymbianFAQ
以上資料在我沒有安裝Qt之前沒有找到,複製出來,給用得著的人,也給以後自己備份。
手機上的需求如果需要Nokia
S60系列手機上運行Qt程式,那麼需要先有Qt的運行庫,因為商店賣給你手機的時候並沒有安裝Qt庫(也許以後的版本會裝上,但是誰知道以後有多後
呢),所以需要你自己去安裝。當然Qt庫還會依賴於其它幾個C和C++的庫,分別是pips/openc_ssl/stdcpp。如果是4.5.2,基礎
庫可以是pips_s60_1_5_5b.sis
openc_ssl_s60_1_5_5b.sis
stdcpp_s60_1_5_5b.sis
。Qt庫和示範程式的下載則在
http://pepper.troll.no/s60prereleases/demos/
目錄下。安裝完後就可以在你的手機上體驗Qt應用了。
如果想測試你自己編寫的Qt-4.6.0-beta程式,則需要Qt-4.6.0以上的庫檔案,我在安裝自己應用的時候提示要Qt
4.0.6以上版本,不會是bug吧,呵呵。上上下下翻了幾遍http://pepper.troll.no/s60prereleases裡的文章,也
沒找到下載Qt-4.6.0-beta庫的地方。只好自己動手豐衣足食。如果你已經安裝了Qt for Symbian
4.6.0-beta的SDK後,那麼在安裝目錄下C:Qt4.6.0-beta可以看到兩個.sis檔案fluidlauncher.sis和
qt.sis,你需要安裝它們。同樣Qt的依賴庫也可以在安裝目錄下找到,地址分別為<EPOCROOT>nokia_plugin/openc/s60opencsis/pips_s60_<version>.sis<EPOCROOT>nokia_plugin/openc/s60opencsis/openc_ssl_s60_<version>.sis<EPOCROOT>nokia_plugin/opencpp/s60opencppsis/stdcpp_s60_<version>.sis
注意事項總結:
1 如果發現沒有那幾個在手機上安裝的包,或者編譯不能通過,比如我是在S60 3th 的時候就沒有,就是要安裝Open c++。最新下載
2 Carbide需要安裝更高的版本。最新下載
3 將qt的bin路徑(c:/qts60/bin)加到系統的PATH裡。
4 在Carbide中添加Qt路徑:Window->Preference->Qt
參考:
在S60上安裝Qt
Qt for S60使用入門