How to build Qt for Symbian using the Linux makespec. Prerequisites: - Working RVCT 2.2 native Linux compiler. The new publicly available RVCT 4.0 compiler may work, but it hasn't been tested yet. - A working GnuPoc environment. See this page for details: http://www.martin.st/symbian/ Download the latest version, unpack it and run the 'install_eka2_tools' script as described in the last part under the EKA2 part. The part about the your own gcc are not needed as we use the rvct compiler. Make sure you do the part about Wine setup as well. - Anderson Lizardo's patches for GnuPoc. Look for the qt_s60_gnupoc_v10.patch on this page: http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/ and carry out the instructions under point 8: Installing Open C. Compiling: 1. First a few environment variables need to be set: export RVCT22LIB=/lib/armlib export EPOCROOT= export PATH=$PATH:/epoc32/tools:/bin export PATH=$PATH:/bin Replace the s60-root with the installation directory of your SDK, and the qt-root with the root of your Qt repository. These are good candidates for putting in a script somewhere. 2. Run configure. It needs a bit more switches than usual, so here's the full line: ./configure -developer-build -platform linux-g++ -xplatform \ symbian/linux-armcc -little-endian -host-little-endian \ -arch symbian 3. Compile Qt cd src make and then wait for a while. 4. Package and install Qt cd s60installs Edit Qt_template.pkg and change the first 0x2xxxxxxx to 0xExxxxxxx. Then execute: makesis Qt_template.pkg signsis Qt_template.sis Qt_template.sisx selfsigned.cer selfsigned.key Then put Qt_template.sisx on a memory card and install it from the phone file manager. Alternatively, you can use the runonphone tool found in the tools directory of Qt. To build, this requires a separately configured Qt installation for Linux, unfortunately. To use it, you also need have App TRK running on the phone. At the time of writing, only bleeding edge Linux kernels are able to autodetect the USB serial port on the phone, but you can force detection by running: modprobe usbserial vendor=0xXXXX product=0xXXXX The XXXXs should be replaced with the two values listed for your device when executing "lsusb". In most distributions, this will lead to the creation of two devices: /dev/ttyUSB0 and /dev/ttyUSB1. The latter is usually the one that App TRK responds to. Then execute: runonphone -p /dev/ttyUSB1 -s Qt_template.sisx dummy.exe The dummy.exe argument is irrelevant, since we are not executing anything yet. 5. Compile some helloworld application (I leave the details to you ;-) qmake make 6. Package, install and run application. makesis helloworld_template.pkg signsis helloworld_template.sis helloworld_template.sisx \ /src/s60installs/selfsigned.cer \ /src/s60installs/selfsigned.key Then either install by memory card, or install and run like this: runonphone -p /dev/ttyUSB1 -s helloworld_template.sisx \ helloworld.exe 7. Enjoy "hello world" on the phone!