Bruciata la iso su cd, installato l'ambiente, tutto ok.
Poi ho scaricato la Qtopia 4.2.4 opensource dal sito di trolltech a questo link.
Scompattato e fino a qua tutto ok.
Prima di configurare è necessario creare due file nella directory
src/libraries/qtopiabase
i file in questione sono:
custom-linux-arm-g++.h
custom-linux-arm-g++.cpp
Il file custom-linux-arm-g++ è:
#define QPE_NEED_CALIBRATION
#define QPE_USE_MALLOC_FOR_NEW
#define QPE_ARCHITECTURE "arm"
#define QPE_DEFAULT_TODAY_MODE "Daily"
mentre in custom-linux-arm-g++.cpp:
#include <qpowerstatus.h>
#include <qwindowsystem_qws.h>
QTOPIABASE_EXPORT int qpe_sysBrightnessSteps()
{
}
QTOPIABASE_EXPORT void qpe_setBrightness(int bright)
{
}
QTOPIABASE_EXPORT void QPowerStatusManager::getStatus()
{
}
Rappresentano implementazioni vuote di alcuni metodi che servono a Qtopia per gestire alcune caratteristiche del dispositivo, quali la potenza e l'illuminazione dello schermo.
A questo punto, Trolltech consiglia di creare una directory diversa da quella dove risiedono i sorgenti per effettuare configurazione e compilazione. Ho creato una directory build, dalla quale ho lanciato la linea di configure:
configure -arch arm -xplatform linux-arm-g++ -no-infrared -no-helix
Dopo aver accettato la licenza, il configure crea qmake e tutti progetti sia per le cosiddette Qt/embedded che per Qtopia.
A questo punto di può lanciare il make, ma non è finita qua.
Il g++ contenuto nella distribuzione gestisce in modo diverso la definizione di membri statici costanti della classe Zoomer che risiede nella directory src/server/phone/ui
L'errore generato è analogo al seguente:
zoomer_p.cpp:(.text+0x52): undefined reference to `Zoomer::stop1'
zoomer_p.cpp:(.text+0x76): undefined reference to `Zoomer::stop2'
zoomer_p.cpp:(.text+0xae): undefined reference to `Zoomer::growthFactor'
Per far sì che il linking abbia esito positivo, bisogna modificare il file zommer_p.cpp aggiungendo le seguenti linee:
const qreal Zoomer::stop1;
const qreal Zoomer::stop2;
const qreal Zoomer::growthFactor;
A questo punto la compilazione dovrebbe terminare in modo corretto.
Pizza