📜 ⬆️ ⬇️

We build Qt applications for Symbian from under linux

At this time we will collect almost completely by native means, without using the Nokia remote compiler
This method was tested on Gentoo-amd64, as a result, quite working sis files were obtained. A huge advantage when building from under Linux is that the native make is used, and not a muddy utility called abld. As a result, we get such advantages as:

As a result, the assembly speed increases significantly!

Important note: some utilities still work through wine!

Install gnupoc


We need to register on forum.nokia.com to download packages with the sdk we need. And we need S60_5th_Edition_SDK_v1_0_en.zip and s60_open_c_cpp_plug_in_v1_6_en. Download them to a specially created directory for this, in my case it is:
Develop/crossdev/symbian/downloads
Having received these packages you can proceed to the action:
First of all we download and unpack gnupoc somewhere.
Now we run the install_gnupoc_s60_50 script as arguments, we give it the path to the archive with sdk and the path to the directory where this sdk will be installed.
In my case it is:
sh install_gnupoc_s60_50 ../../downloads/S60_5th_Edition_SDK_v1_0_en.zip ../../sdk

Repeat operation for openc
sh install_openc_16_s60 ../../downloads/s60_open_c_cpp_plug_in_v1_6_en.zip ../../sdk

')
Qt installation


Now we have in Develop / crossdev / symbian / sdk a completely working version, you need to put Qt on it, for this we take the Windows build for Symbian , run under Vain and install, specifying our desired Develop / crossdev / symbian / as the sdk directory Sdk, you can refuse to install raw materials. This action will allow us not to spend a lot of hours assembling all the libs to create the necessary def and dso files.
The Qt version must be at least 4.7beta1, this is important, with version 4.6, such magic may not work!

And now closely monitor the hands!


The most fun begins: you need to compile a working set of utilities for the assembly, for this we download gcce , you can even get fresh 4.4.3, let the Carbide users still collect with their grandchildren 3.4.5. The compiler we throw for example in
Develop/crossdev/symbian/arm-2009q3/
Now we need to create a file with environment variables where EPOCROOT will be specified, as well as paths to the compiler and utilities. My file looks like this:
#!/bin/sh

SDK_DIR=$HOME/Develop/crossdev/symbian
export EPOCROOT=$SDK_DIR/sdk/
QTDIR=$SDK_DIR/qt
gcceDir=$SDK_DIR/arm-2009q3/bin/
export PATH=$QTDIR/bin:$EPOCROOT/epoc32/tools:$gcceDir:$PATH

if [[ ${EUID} == 0 ]] ; then
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] @ \[\033[01;33m\]Symbian SDK \[\033[00m\]'
fi

Once we have decided on the paths we do:
source env.sh
We have a beautiful greeting that will indicate to us that we now have quite unusual environmental variables.
Now we need the sources of the same Qt version as in the symbian build, unpack them in QTDIR, go into it and run configure with the following keys:
~/Develop/crossdev/symbian/qt $ @ Symbian SDK ./configure -platform linux-g++ -xplatform symbian/linux-gcce -little-endian -host-little-endian -arch symbian -prefix ~/Develop/crossdev/symbian/qt

As a prefix, the easiest way is to choose the same QTDIR in order not to bother with the installation.
Now we wait for qmake to assemble and work, but do not run make.
Need to do the following
cd src/tools/
make

Now we check what version qmake we have, there must be something like that
qmake -v
QMake version 2.01a
Using Qt version 4.7.0 in /home/sauron/Develop/crossdev/symbian/qt/lib

Afterword and directions for further refinement:

Now you can replace the wine utilities with the corresponding natives from gnupoc, but this should be done carefully, compatibility problems may arise. In principle, the usual exe files running through wine is enough. We can not pay attention to the warning warning lines that appear during compilation, they arise because of the old version of stlport and nothing can be done about them. There may be some problems when creating sis files.
Here is a sis file compiled this way, you can check it.
In general, I want to say that the solution is quite working and I hope soon there will be an official Symbian SDK for * nix systems

Source: https://habr.com/ru/post/98616/


All Articles