Tutorial videos: Qt development for Symbian

Published Thursday December 3rd, 2009 | by

The Italian guy with German accent made new videos :) This time it is a whole trilogy about Qt development targeting the Symbian Platform:

1 – Setting up a Symbian/S60 development environment

Bullet proof guide to how to install and plug together all those different components that make up a Symbian/S60 development environment. Download links: ovisuite, carbidecpp, activeperl56, s60sdk, openc and apptrk.

2 – Setting up Qt for Symbian

The easy part: How to install Qt for Symbian on PC and phone, and also a Qt SDK for Windows in order to have QtCreator plus desktop Qt.

3 – Developing in Qt Creator

The fun part: How to develop a Qt application first on the desktop and then deploy and debug(!) it on the device. All in Qt Creator, with its preliminary Symbian support.

Did you like this? Share it:

Posted in Qt, QtCreator, S60

45 comments to Tutorial videos: Qt development for Symbian

scorp1us says:

This is great! When do I get a free N900 to try it out on?

Is the 2010 Symbian stuff all Qt?

hugo says:

From API, to documentation and video tutorials … You are the best !! Thanks for the huge work you’ve done.

toodle says:

excellent … finally we could get rid off slow and painful carbide (yet ridiculous expensive)! hopefully people will come to make more apps for Symbian.

Andri says:

Is it possible to get this running on Linux as well?

Markus Goetz says:

scorp1us, N900 is Maemo, not Symbian :)

Daniele says:

Ciao
sarebbe possibile un doppiaggio in italiano, o al più dei sottotitoli, per il portale qt-italia.org?

espenr says:

Excellent work Alessandro! I didn’t know we had App TRK working properly now – congrats to Berlin for excellent QtCreator work as well :D

JanneK says:

Just to note that Carbide installation already includes AppTRK so no need for separate download.. You can locate the sis packages from installation directory.

Free of choice SDK is bit misleading as if you develop using 3.1 SDK you won’t be able to use all APIs from 5.0. Qt hides this but the functionality isn’t there. Point is moot in sense that I would assume everyone to develop on SDK reflecting the device they own.

Good work with the videos, I know what IDE I’m going to be using for development and it ain’t Carbide :)

@toodle Carbide is free nowdays.

Brendan says:

@toodle Carbide is free, has been for over a year!

Giorgio says:

Grande Alessandro, fortunato a lavorare per Qt :-)

biff says:

Will there be a ‘QT Development for N900′ post? I just picked on up and was, actually, hoping to do some development for the phone as well as doing development ‘on’ the phone. I spend 2hrs on the bus every day and am hoping to be able to polish up and write some code.

alexismedina says:

Args, I do exactly as your video, but when build the project for the device, I get a “Waiting for App TRK on COM23″, and there stops. (App TRK is running in USB mode on my phone, status says Connected)

ncr100 says:

Thanks for the excellent videos!!!

If I wished to develop software for distribution to the average user, would my users be required to install two SIS files? Does QtCreator support packaging both my application and the required Qt / OpenC libraries in one SIS file? What if I write a second application and both are installed; when someone uninstalls the first would the second be disabled by auto-uninstallation of the packaged Qt / OpenC libraries or would they properly remain on the device? (Are these questions answered someplace else? They seems fundamental.)

Elviin says:

After clicking on the green button (Ctrl + R) I get this message:

Starting: C:/MinGW/bin//mingw32-make.exe -w
mingw32-make: Entering directory `D:/Users/elviin/dev/src/mobile/symbian/MyFirstApp’
C:/MinGW/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/Users/elviin/dev/queetech/src/mobile/symbian/MyFirstApp’
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I”c:Qt2009.05-sdk-win-opensourceqtincludeQtCore” -I”c:Qt2009.05-sdk-win-opensourceqtincludeQtGui” -I”c:Qt2009.05-sdk-win-opensourceqtinclude” -I”c:Qt2009.05-sdk-win-opensourceqtincludeActiveQt” -I”debug” -I”.” -I”c:Qt2009.05-sdk-win-opensourceqtmkspecswin32-g++” -o debugmain.o main.cpp
cc1plus: error: invalid option `threads’
mingw32-make[1]: Leaving directory `D:/Users/elviin/dev/src/mobile/symbian/MyFirstApp’
mingw32-make: Leaving directory `D:/Users/elviin/dev/src/mobile/symbian/MyFirstApp’
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make: *** [debug] Error 2
Exited with code 2.
Error while building project MyFirstApp
When executing build step ‘Make’

Any suggestion? Thank you.

Jason says:

I’m getting a nasty error about pipeslib.ldd when I run qtdemos.sis. The install halts and nothing shows up for use.

Jason says:

Also, when trying to install pips_s60_1_6_SS.sis, it says “Unable to install. Component is built-in.”

Jason says:

Well I fixed that by jailbreaking my device – hellocarbide+capsoff+installserver.exe. Probably voided my warranty. This shouldn’t be neccessary.

Now when I go to debug apps I get from QtCreator: “Cannot start executable C:sysbinMessagePopper.exe on the device: General OS-related error”. If I navigate to C:sysbinMessagePopper.exe, I can run it from there. No debugging, however.

The phone is a Nokia 6650

111bits says:

Such videos are a really good idea. Bravo for making this idea a reality!

*But* the title is misleading – it should be ‘Qt development for Symbian *on Windows*’.
Well, hell with windows, I have enough at home…
Is it actually possible to develop with Qt for Symbian on a GNU/Linux OS?

rage says:

Too bad, still dont work, Qt Creator doesnt detect Qt

Daniel Molkentin says:

@rage: it would be nice if you could turn this into a verbose bug report, i.e. which Qt version did you try? What means “doesn’t detect Qt”? Did you try to add Qt manually? etc. Just expressing pity doesn’t fix problems, do something about it: bugreports.qt.nokia.com.

rupeshk_19 says:

Still too many dependencies and no instructions for linux

Alessandro says:

Thanks to all (grazie a tutti) for the friendly and informative feedback! :)

@scorp1us: If I were to decide, I’d give a free N900 or N97 to everyone who is a proven contributor to opensource Qt-based projects :D
According to Symbian.org, the platform version “Symbian^4″ will be very Qt-ish. I’ll not do release time estimations for Symbian, however.

@Andri, rupeshk_19: We Trolls cannot do everything at once :) However, if you want to experiment: some Trolls are already investigating it: http://labs.qt.nokia.com/blogs/2009/10/28/a-new-symbian-toolchain-for-linux/ …And have a look at for example: http://lizardo.wordpress.com/ and http://martin.st/symbian/

@Daniele: Di sicuro! Il mio italiano non e abbastanza buono. Pero ti posso mandare i testi originali, e tu mi pui dare in ritorno gli .wav in italiano. O piu semplice: mi dai i testi tradotti che posso direttamente aggiungere come sottotitoli negli video su YouTube :)

@JanneK: I found ‘http://bit.ly/apptrk’ easier to explain than ‘C:Program FilesNokiaCarbide.c++ v2.0pluginscom.nokia.carbide.trk.support_1.4.0.014trks60′ :D Also, Cabide.c++ from Forum Nokia is a Year old and the included trk is more likely to be soon out of date than the one from that Url.
About SDK version: the main target audience for this video is people who use the precompiled Qt binaries and (nearly) exclusively the Qt/QtMobility Api. Qt does a lot aerobics at runtime to handle SDK differences. If you see situations where the S60 SDK version plays a role already during the build time of a Qt app, we definitely need to document this and address that in the next video. (JanneK is also working on the Qt to Symbian port)

@alexismedina: I suggest asking in the QtCreator mailing list, if that is a known issue. Your feedback is welcome. In the meantime, you can manually deploy your application to your phone. And you may also test Carbide.c++, if on-device debugging works there.

@ncr100: You are welcome :) Deploying Qt applications to non-developer-phones is still not as we want it. Here you see instructions how to currently do it: http://doc.qt.nokia.com/4.6/deployment-symbian.html But if you can wait a bit; Nokia is working on a ‘smart installer’ solution which you can include into your .sis and which will -when installed- download the prerequisites (such as Qt), accordingly. Of course, future phones will come with Qt (no idea when and which ones).

@Elviin: I am not sure why it is using C:MinGW … It should use the more recent MinGW that is in c:Qt2009.05-sdk-win-opensourcemingw. Could you check in QtCreator under Tools/Options for outdated pathes/Qtversions?

@Jason: I am not sure if we ever tried it on an 6650. Apparently, some 3.x devices seem to have a non-updatable openC. Did you successfully debug in Carbide (non-Qt apps?). Anyway, feedback regarding QtCreator is welcome. mailing list or http://bugreports.qt.nokia.com (Thanks for hacking your phone in order to try Qt!)

@rage: Let us know details, we will help :)

@rupeshk_19: True. That’s still too much to install. We hope to have that fixed in the not too far future.

Anssi says:

Thanks for the great tutorial! Is it possible to do IPC in the Symbian phones using Qt?

Chris Karr says:

Thanks for the wonderful instructions. I’m hoping to ditch Carbide in favor of the Qt tools.

My app’s up and running using the new setup, but I’m having problems connecting to the network using one of my classes. Do we still need to go through Symbian Signed to sign our apps for testing once we start using privileged capabilities like NetworkServices? Or does loading through TRK take care of those issues for testing purposes, at least?

Jason says:

@Alessandro
The deployment copies it to the device, but it does not start it properly. I can start it manually though, but this means no debugging.

I’ve explained everything in more detail here: http://blog.jasondonenfeld.com/223 with a demonstration video of the success here: http://www.youtube.com/watch?v=c95KAuorbIU .

Can you guys get your hands on a Nokia 6650 (with branding)? In the US this is the most popular S60 phone I’ve seen since AT&T really pushes hard to deploy it. It’d be a good phone to work with because it’s limited on processor and memory and is setup in a way that carriers frequently set it up, so this is big use scenario that Qt should account for.
http://www.nokiausa.com/find-products/phones/nokia-6650

blackcoder says:

That’s a great tutorial. It took me a while to get everything downloaded and installed and I had issues installing active perl 5.6 on windows 7 (I ended up installing active perl 5.10) but eventually I had it all up and running. Post more of these interesting tutorials when you have time …

lewix says:

Hi,
I installed all develop environment, but when i try to build a qt symbian configuration in qt creator, i get this error:
make: *** Documents: No such file or directory. Stop.
make[1]: *** [FINALMAKEFILE_0XE4774699] Error 2

Sorry, what i’m wrong?

Kensai says:

These videos were really great, Alessandro. Thinking of the future (when Symbian^4 will be out), it can only become easier, stabler, and generally better!

elviin says:

@Alessandro Thank you for the advise. Your note was correct – I tested also a different version of mingw. But the point was that in the PATH I had these directories as advised in the Nokia wiki: C:Program Files (x86)CSL Arm Toolchainbin;C:Program Files (x86)CSL Arm Toolchainarm-none-symbianelfbin;C:Program Files (x86)CSL Arm Toolchainlibexecgccarm-none-symbianelf3.4.3;C:Program Files (x86)Common FilesSymbianTools;C:Program Files (x86)PC Connectivity Solution; and there were different versions of cc1plus colliding.

I added the qt mingw version at the and which causes the problem with the unknown threads option when passed to cc1plus. So I added the at mingw dir C:Qt2009.05-sdk-win-opensourceqt..mingwbin in front of the path. And I was able to build the qt app. Carbide C++ seems to be working.

elviin says:

After choosing my second build configuration – debug on device – I get this error:

Starting: c:/qt/4.6.0-symbian-opensource/bin/qmake.exe D:/Users/elviin/dev/src/mobile/symbian/MyFirstApp/MyFirstApp.pro -spec symbian-abld -r
Unable to resolve epocRoot ‘/Symbian/9.2/S60_3rd_FP1_2/’ to real dir on current drive, defaulting to ‘/’ for mmp paths
Exited with code 0.

It looks like qmake is not able to resolve the correct EPOCROOT. On the other hand Carbide can resolve the variable.

elviin says:

So I finally managed it to run and debug on my Vista x64 PC and also on the device (N95 8gb). The last issue with EPOCROOT is evergreen: the sdk and the projects must be on the same drive (C:).

JubiluM says:

Thanks for the great tutorial…now it is atleast possible (also for us earthly ;) ) to set up the mobile dev. environment.

As what the process still is…really painful, containing nasty dependencies, only possible in Windows(?), etc etc etc…but you know that allready. When it gets to the maturity level that we have, for example in MingQt-setup, I’ll start making waves :) !

But I understand the time it takes to clean polish Nokia-fluff into shiny Troll-stuff ;) !

abs says:

question: why is carbide needed in the first place? isnt qt creator replacing it?

espenr says:

@abs: carbide has the emulator compiler embedded in the package. The emulators themselves are shipped with the different SDKs. So – if you want to build for emulators you need Carbide.C++ :)

abs says:

@espenr

ah… this come to the second question.. how do i setup a emulator in qt env?

krosavcheg says:

@elviin: thanks for tip (about same drive c:), i had same errors as you, but now everything is fine ;)

Alessandro says:

@all: Again thanks for the great feedback :)

@Anssi: Right now, I would recommend using Symbian’s native IPC mechanisms from withing Qt apps. QtDBus on Symbian is not yet done.

@Chris Karr: Afaik, selfsigned apps allow the NetworkServices capability. There may be some required steps to do in order to make your Qt for application networking enabled. See ‘sym_iap_util.h header and qmake pro additions’ in Jason’s blog entry http://blog.jasondonenfeld.com/223 . I admit that this quirk is not yet well documented.

@blackcoder: Thanks for the info. Maybe the Perl 5.6 installer needs administration rights, or is simply too old for Windows 7. If Perl 5.10 works for you, that’s good luck :)

@lewix: Try to create a project in a path without spaces. It seems that we have yet another platform where we fail with spaces in paths.

@elviin: Thanks for your patience and congratulations for having found the issue. Although, initially I also stumbled 2-3 times about the project-on-same-drive issue, I forgot to mention it in this tutorial. I now made an annotation in the third YouTube clip, and will definitely mention it next time.

@abs: So far, QtCreator tries to offer the ‘Qt’ experience when developing Qt applications for Symbian. Carbide.c++ has loads of Symbian specific tools which QtCreator does not have on the current roadmap. That’s why real Symbian experts will always want to keep a Carbide.c++ installation in the repertoire.
The reason why I showed how to install Carbide.c++ was mainly as a possible fallback, because QtCreator’s Symbian support is still preliminary. And also QtCreator does not support debugging on the current S60 emulator, but Carbide.c++ does. If you want to see Qt for Symbian in Carbide.c++ with emulator, this video is for you: http://youtube.com/watch?v=AKJsnUluU2E

UzEE says:

I’m unable to run/debug applications that target the S60 platform. Actually QtCreator doesn’t automatically detect the S60 SDK even though I followed the exact steps outlined in these videos. I’m running Windows 7 64-bit and this is my first ever attempt at Series60 development. What am I doing wrong?

Alessandro says:

@Uzee: Sorry to read that your first S60 development attempt has these hurdles. In order to go ahead for now, I suggest trying Carbide.c++ (see http://youtube.com/watch?v=AKJsnUluU2E ).
In order to get the whole thing runing in QtCreator, I suggest asking in the Qt-creator mailing list http://lists.trolltech.com/mailman/listinfo/qt-creator . Describe the exact pathes where you installed the S60 SDK and and Qt SDK, and their versions. Also, the output of the ‘devices’ commend, and ‘devices -info @‘ will help getting good feedback.

Symbiatch says:

So, we still have to use a decade old OS (XP) to develop for a platform that was released last week? Come on guys. Get the baseball bats out, whack the Symbian SDK people so that they’ll fix everything to work correcltly on Win7 OUT OF THE BOX and while you’re at it, why not throw the whole mingw stuff out of the window? Visual C++ compiler has been freely available for years now, you know, and it produces a lot better code than mingw.

I hope Qt Creator will be a lot more usable than Carbide for development, but please do tell me that there is/will be a FREE plugin for Visual Studio 2008/2010 for Qt devel? We really don’t need millions of separate IDEs when one good one would do everything. And don’t start flaming, guys. You can use emacs for all I care, but some of us just want to get things done, not fight with Carbide or SDKs.

emrares says:

i get this error when i try to compile the examples on windows 7

C:/Qt/4.6.0-symbian/demos/mainwindow/../../include/QtCore/../../src/corelib/arch/qatomic_symbian.h:46: error: e32std.h: No such file or directory

but when i make a new project it works fine

jw says:

The second video mentions that the STDCPP.sis contains the required Standard C++ and boost libraries.
Which version of Boost do you use?

SA_master_12 says:

Hey man, your the best! Thanks to you I can now start programming!

Commenting closed.