Installing Qt for Symbian SDK 4.6.2 on Linux

Qt 4.6.2 was released last Monday, so I took some time to update the GnuPoc and Qt installer scripts I previously released for 4.6.1.

Besides the upgrade to Qt 4.6.2, there are other minor changes:

  • Both installers now check MD5 signatures of the necessary files, to make sure they are not corrupted.
  • The GnuPoc installer now supports the 3.1 SDK (see updated instructions below).
  • Added “unset QMAKESPEC” command to setup instructions (at least Gentoo sets it globally, which affects qmake).

The instructions are basically the same as the previous ones, but I will post the full instructions here for completeness.


Download all required files to a single directory (e.g. “~/downloads”):

For building the native tools from gnupoc, you will need:

  • the GCC C/C++ compilers
  • development files for zlib
  • development files for openssl

On Ubuntu, you can install these using the following command:

sudo apt-get install build-essential zlib1g-dev libssl-dev


First, install GnuPoc + S60 SDK + the Open C/C++ plugin:

./ \
    <download-dir> \

Replace <download-dir> with the location of all files downloaded in previous section (e.g. “~/downloads”), <gnupoc-dir> with the destination directory for GnuPoc and the SDK files (e.g. “~/gnupoc”) and <x.y> with the SDK version you want to install (e.g. “3.1” or “5.0”). Note that both directories must have absolute paths.

If installation was successful, you should see an output like:

Installation has finished. Before using the GnuPoc SDK, run these commands on the console:
export PATH=<gnupoc-dir>/bin:$PATH
export EPOCROOT=<gnupoc-dir>/symbian-sdks/5.0/ # trailing "/" is required!
(These commands must be run again every time a new console is opened.)

Run the commands as instructed on the message. Next, install Qt for Symbian:

./ \
    <download-dir> \

Replace <download-dir> with the location of all files downloaded in previous section (e.g. “~/downloads”), and <qt-s60-dir> with the destination directory for the Qt files (e.g. “~/gnupoc/qt-4.6.2”). Note that both directories must have absolute paths.

If installation was successful, you should see an output like:
Installation has finished. Before using the Qt for Symbian SDK, run this command on the console:
export PATH=<qt-s60-dir>/bin:$PATH
unset QMAKESPEC    # make sure there is no QMAKESPEC variable set
(This command must be run again every time a new console is opened.)

Before using Qt for Symbian, you should run the command as instructed on the message above.

Usage example

To test the installation, I will describe how to build the “colliding mice” example.

  1. cd into the example source:
  2. cd <qt-s60-dir>/examples/graphicsview/collidingmice/

  3. Now build the example and generate the SIS file
  4. qmake
    make debug-gcce
    make sis

A few notes:

  • Make sure Qt is installed on the device before installing Qt applications. The easiest way to install it is to copy the “qt_installer.sis” package found under <qt-s60-dir> over bluetooth and open the received message to begin the installation.
  • Only the “debug-gcce” (if you are using the GCCE toolchain AKA “CodeSourcery toolchain”) or “debug-armv5” (if you are using RVCT) will work, because the current Qt releases only ship debug versions of the libraries

About lizardo

My hobby: figure out how systems are expected to work; induce them to work unexpectedly; and responsibly disclose.
This entry was posted in Linux and tagged , , , . Bookmark the permalink.

49 Responses to Installing Qt for Symbian SDK 4.6.2 on Linux

  1. Pingback: Installing Qt for Symbian SDK 4.6.1 on Linux « Anderson Lizardo's Blog

  2. Wolfgang says:

    Thanks again for your work!

    I’ll try it later this day.

    Your link to “qt-symbian-opensource-4.6.2.exe” is not set correctly, it still links against the 4.6.1 version!

  3. Wolfgang says:

    I think its working fine so far.

    But there are two small problems if i follow these instructions

    Executing “make installer_sis” i get the following output:
    “make -s -f Makefile sis
    Processing xxx_debug-gcce.pkg…
    Created xxx_unsigned.sis

    Successfully created xxx.sis for debug-gcce using certificate: Self Signed!
    make -s -f Makefile ok_installer_sis
    make[1]: execvp: createpackage.bat: Keine Berechtigung(no authorization)
    make[1]: *** [ok_installer_sis] Fehler(error) 127
    make: *** [installer_sis] Fehler(error) 2”

    That is why i changed createpackage.bat to in my Makefile.
    Then i get something like this:
    “make -s -f Makefile ok_installer_sis
    Processing xxx_installer.pkg…
    xxx_installer.pkg(26) : error: file not found
    xxx_installer_unsigned.sis: No such file or directory

    SIS creation failed!”

    Looking at my xxx_installer.pkg i recognized that the script could not find my xXx.sis but xxx.sis exists. There is a problem with the capitalization at this part. xXx is the spelling of the filename in my .pro file.

    After changing the filename from xxx.sis to xXx.sis it creates the xxx_installer.sis correctly.

    Maybe you change these two things? 😉

    • lizardo says:

      I would be surprised if “make installer_sis” worked without any changes 🙂 Anyway, I’ll add it to the TODO list for the next installer update. Thanks for testing!

  4. Timo says:

    Thanks for 3rd version, been waiting that!

  5. chuckmo says:

    Open C/C++ 1.7 is released. Would you please update your script?

  6. Pingback: protected * void / QtMobility Project, ou desenvolvendo para Symbian no Linux

  7. Rene Jensen says:

    Insanely many thanks!

    I have on several occasions been trying to get into Symbian development for at least 3-4 years! In every case I tried in vain to install the behemoths of tools on all my xp/vista machines with various versions of perl (whatever could be found in proximity to the obsolete required version), and on both fat and ntfs filesystems using all the hideous tricks with python script to delete files during installation because fat filesystems break under the load. And so on and on and on…

    All along I wanted to get away from windows and back to linux again.

    Using your script it took less than 15 minutes to produce a sis on my ubuntu!

    Symbian vendors should reward you with a private jet!

  8. Abhishek says:

    I am following this post to setup the environment but I am getting error something like this
    $ sh . ~/GnuPoc ~/3.1
    Verifying archive integrity… All good.
    Uncompressing Unofficial GnuPoc 1.15 installer (OpenC + S60 SDK)…..
    ERROR: SDK version /home/abhishek/3.1 is not supported by this installer

    i have tried this with 5.0 but still the same error ..
    following is the list of software packages and scripts i have downloaded

    please guide me 🙂

  9. Bruno says:

    Thanks a lot. Maybe I’m trivial but can I use qtcreator? If yes can I build a project with him?

    • Bruno says:

      I tried to install qt creator, then I made a project and then I tried to compile with the above procedure but without success in fact I obtained some error related to QMAKESPEC variable:
      QMAKESPEC has not been set, so configuration cannot be deduced.
      Error processing project file: /home/bruno/Dati/Qt/Programmi/Address_book/part1/

      (the was created by qt creator)
      can you help me?

      • lizardo says:

        I never attempted Qt Creator integration… As you can see from the message after you install Qt for Symbian, you need to set some environment variables prior to trying to build. You may need to fiddle with some Qt Creator configuration to set these variables (I don’t know how to do this, sorry).

  10. Grego says:

    If you want to install multiple Symbian SDKs, like 3.1fp1, and 5.0, how would you proceed?

  11. Oskari says:

    I got the QtCreator part working. 🙂

    First go to Options -> Qt Versions and add the new Qt just installed.

    Then you have to go to the projects settings and change it to use the new qt version.

    After that, edit build steps so that the make command has “debug-gcce” in it (you can also add the “make sis” step …).

    Now edit the build environment variables to correspond to the ones above (EPOCROOT, PATH).

    After this I tried to build my test app, and qmake didn’t like some UID or something. So I went to and got me one unprotected UID and put it to my .pro -file: “symbian:TARGET.UID3 = 0xDEADBEEF”.

    I think that’s everything I did, and I got it working. At least the .sis installed on my N97 and the app worked 🙂

  12. Pingback: Stepping Toward Symbian Open Source Tools on Linux and Mac « Paul Beusterien's Blog

  13. Pingback: Stepping Toward Symbian Open Source Tools on Linux and Mac | Symbian Blog

  14. schemacs says:

    export PATH=/home/lele/Install/gnupoc//bin:$PATH
    export EPOCROOT=/home/lele/Install/gnupoc//symbian-sdks/3.1/ # trailing “/” is required!

    Note EPOCROOT is wrong for “//”,I just install the gnupoc use this
    ./ /home/lele/Downloads/DownThemAll/ /home/lele/Install/gnupoc/ 3.1
    ,pls check the script(it’s hard for me to check).

  15. spamhere1983 says:

    can’t download anything neither I can open website:

    Can you give an alternate DL-Link for your scripts pls?

  16. spamhere1983 says:

    ok dunno what’s going on, but over webproxy I was able to download the files.

  17. spamhere1983 says:

    Getting this error:

    cc -I. -c -o elf_phnum.o elf_phnum.c
    cc -I. -c -o elf_shnum.o elf_shnum.c
    cc -I. -c -o elf_shstrndx.o elf_shstrndx.c
    cc -I. -c -o elf_scn.o elf_scn.c
    elf_scn.c: In function ‘_libelf_load_scn’:
    elf_scn.c:96: error: expected expression before ‘struct’
    gmake[1]: *** [elf_scn.o] Error 1
    gmake[1]: Leaving directory `/tmp/selfgz267842234/gnupoc-package-1.15/tools/elf2e32/libelf-elftoolchain’
    gmake: *** [libelf/lib/libelf.a] Error 2
    Unexpected error: aborting.

  18. spamhere1983 says:


    I’m using Gentoo ~amd64 tryed gcc-4.4.2 and gcc-3.4.6

    when I comment following (line 96) in elf_scn.c it compiles:

    if (!STAILQ_EMPTY(&e->e_u.e_elf.e_scn)) {
    // assert(STAILQ_FIRST(&e->e_u.e_elf.e_scn) ==
    // STAILQ_LAST(&e->e_u.e_elf.e_scn, _Elf_Scn, s_next));

    But i think it’s not a good “solution”…..

  19. spamhere1983 says:

    Hi thanks for reply,

    I found the comments and he did the same, as I did.

  20. Markus Rathgeb says:

    Yesterday I “played” a little with the development environment and here of my results (improvements?):

    The line
    could be replaced with
    So the generated makefile (by qmake) will just contain working targets.

    All “tools” that could be found in “gnupoc/tools/bin” and there is an equivalent wrapper (for the windows executable with wine) in “gnupoc/symbian-sdks/5.0/epoc32/tools” should be replace the wrapper.

    I began to integrate the SDK in the new Nokia SDK beta released for two days and it uses the tool of the “epoc32/tools” directory…. The replacement works for me (so far I proceeded yesterday).

    Are the above steps okay?

    • lizardo says:

      Nice tips! A few comments:

      1) ARMV5 is also valid if you have RVCT installed.
      2) These wrappers come from gnupoc, which is installed following the “official” instructions from . Improvements on this regard should be sent to the gnupoc maintainer.
      3) I began playing with Nokia Qt SDK this week too. I plan to mix the Linux/Win32 versions so that we get a nice integrated environment for Linux too. Note that as said on the beta announcement, they have plans to release symbian support for Linux too, but it is still some months ahead. I also don’t have a schedule for when I will have this working (as I’m also working on other things). Let me know if you manage to have it nicely integrated, and post it somewhere 🙂


      • Markus Rathgeb says:

        Perhaps my english grammar is to bad…

        Additional to your point number two:
        “gnupoc/symbian-sdks/5.0/epoc32/tools” contains wrapper that are using wine.
        “gnupoc/tools/bin” contains elf files
        So not the gnupoc maintainer should improve something.
        Your installer should settup the sdk, that “gnupoc/symbian-sdks/5.0/epoc32/tools” does also use the native one.
        Or am I missing something.

        To point number one:
        Your installier could ask, if there is another toolchain installed and adjust the supported platforms in symbian.conf (gcce or/and armv5).

      • lizardo says:

        1) Anything not directly related to Qt is handled by the gnupoc installer. My installer just “wraps” the gnupoc + qt installation in a automated script. So you should ask the gnupoc maintainer to change those scripts that call wine…

        2) Feel free to send a patch with this improvement 🙂 In I describe how to “unpack” and modify the installer script. IMHO, the way it is, it is not a problem, as long as you remember to call the appropriate target.

        Best Regards.

  21. Markus Rathgeb says:

    IMHO the following steps should be enough:

    $ cd ${HOME}/downloads/qt-symbian/gnupoc-symbian-sdk/

    $ ls -1

    $ chmod 0755
    $ ./ `pwd` ${HOME}/symbian/gnupoc 5.0

    $ export PATH=${HOME}/symbian/gnupoc/bin:$PATH
    $ export EPOCROOT=${HOME}/symbian/gnupoc/symbian-sdks/5.0/ # trailing “/” is required!

    $ chmod 0755
    $ ./ `pwd` ${HOME}/symbian/gnupoc/qt-4.6.2

    $ export PATH=${HOME}/symbian/gnupoc/qt-4.6.2/bin:$PATH
    $ unset QMAKESPEC # make sure there is no QMAKESPEC variable set


    export PATH=${HOME}/symbian/gnupoc/tools/bin:${PATH}

    cd ${HOME}/symbian/gnupoc/symbian-sdks/5.0/epoc32/tools
    for i in ${HOME}/symbian/gnupoc/tools/bin/*
    if [ -f ${i} ]; then
    if [ -e `basename ${i}` ]; then
    cp -iv ${i} .

    sed ‘s:SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6:SYMBIAN_PLATFORMS = GCCE:g’ -i /home/maggu2810/symbian/gnupoc/qt-4.6.2/mkspecs/common/symbian/symbian.conf


    # Just SETUP QtCreator of the Nokia Qt SDK

    $ cd ~/NokiaQtSDK
    $ QtCreator/bin/qtcreator

    Tools, Options
    Qt Versions
    Version Name: Qt Symbian
    qmake Location: ${HOME}/symbian/gnupoc/qt-4.6.2/bin/qmake
    S60 SDK: ${HOME}/symbian/gnupoc/symbian-sdks/5.0/
    CSL/GCCE Directory: ${HOME}/symbian/gnupoc/bin




    # Just ONE environment that I need to set

    export PATH=${HOME}/symbian/gnupoc/tools/bin:${PATH}
    cd ~/NokiaQtSDK

  22. Paulo Mendonça says:

    Hi. how can we install qt mobility apis on top of the qt-for-symbian sdk installed by your scripts?

    If it is possible, how could we do that?

  23. Pingback: Protected * Void / Symbian development using Linux on real life…

  24. Pingback: Symbian development using Linux on real life… | Maemo Nokia N900

  25. Tero says:

    Thanks. Your Qt for Symbian on Linux installer saved me a lot of time trying to figure out how to get Qt going for Symbian, I’m sure. I’ve been using GnuPoc for ages, but new to Qt.

    As an improvement suggestion for next release, as someone who’s got all of the v3.1, v3.2, and v5.0 SDKs installed, would speed up installations if the EPOCROOT specific bits (of which there aren’t many) could be separated to their own script. So basically set up everything in QT_S60_DIR with one installer, and then run a separate installer script for each SDK to create the .dso/.lib symlinks and copy the epoc32 files.

  26. Pingback: The Selfish Bit

  27. Pingback: » Blog Archive » Qt para Desenvolvimento Symbian no Linux

  28. Miklós says:


    I have installed the stuff successfully, but I cannot get the Qtcreator build. I have added all the stuff to the .bashrc. (EPOCROOT, etc.) If I open a console I can run qmake, make debug-gcce successfully. If I run the QtCreator from the same prompt (same env). It fails to build with:

    BLDMAKE ERROR: ERROR: CPP executable not found in path
    BEGIN failed--compilation aborted at /opt/gnupoc/symbian-sdks/5.0/epoc32/tools// line 84.
    Compilation failed in require at /opt/gnupoc/symbian-sdks/5.0/epoc32/tools// line 20.
    BEGIN failed--compilation aborted at /opt/gnupoc/symbian-sdks/5.0/epoc32/tools// line 20.
    Compilation failed in require at /opt/gnupoc/symbian-sdks/5.0/epoc32/tools// line 49.

    Of course I have added the debug-gcce make argument.
    Any ideas?

  29. When i use QT4 on linux it successfully detects all the version name, qmake , s60 location but CSL/GCCE directory and carbide directory are empty

  30. Pingback: My blog in 2010 « Anderson Lizardo's Blog

  31. ema says:

    i’ve come into this a bit late…hello? anyone still here? um, my computer rejects qmake (suggesting i install it before using it) bloody rude, so i did then it seem annoyed about debug-gcce…i suspect there is a pattern to my problem that you guys wouldn’t be better informed about…could youse let me in on a little secret? what am i missing exactly?

  32. ema says:

    by the way…will this work for my nokia E63?

  33. Pingback: Qt para Desenvolvimento Symbian no Linux – Kleber's Blog

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s