Note : J'ai effectu� cette installation sur une Ubuntu Dapper Drake, il y a des chances que cela fonctionne sur une Debian unstable, mais je n'en sais strictement rien. ( besoin des paquets QT4 4.1.2). N'ayant jamais travaill� avec autre chose qu'une debian ou ubuntu, vous �tes livr� a vous m�me si vous �tes dans ce cas !!! (voir r�f�rences en bas du howto)
Je suis actuellement sur un projet C++/QT4 (scolaire), avec binaires windows � rendre. Seul probl�me, je n'ai plus un seul windows d'install�, que cela soit chez moi, ou sur l'ordinateur que j'utilise en cours !!!
J'ai donc mis en place un environnement de cross-compilation pour produire des binaires windows utilisant QT4, j'ai assez gal�r�, donc autant en faire profiter le plus grand nombre.
INSTALLATION DE L'ENVIRONNEMENT DE BASE
amalsek@amalsek-desktop:~$ sudo wine mingw32 mingw32-binutils mingw32-runtime
La vous avez d�j� un environnement de cross-compilation simple
On va essayer :
essai.cpp
1 2 3 4 5 6 7 8 9 10
| #include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL,
"Cette fenêtre prouve que le cross-compilateur est fonctionnel !",
"Hello World", MB_OK);
return 0;
} |
amalsek@amalsek-desktop:~$ i586-mingw32msvc-g++ -o essai.exe essai.cpp
Normalement �a compile...
Il faut ensuite r�cuperer la dll de mingw (et la mettre dans le meme repertoire que l'exe ou ~/.wine/drive_c/windows/system )
amalsek@amalsek-desktop:~$ gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll
Puis on teste la fenetre
amalsek@amalsek-desktop:~$ wine essai.exe
Normalement tout est bon et la fen�tre apparait
Maintenant on va commencer le plus difficile, la mise en place de QT4
AJOUT DES BIBLIOTHEQUES QT4
On r�cup�re les binaires et les paquets de d�veloppement QT4 d'ubuntu
amalsek@amalsek-desktop:~$ sudo apt-get install libqt4-core libqt4-gui libqt4-qt3support libqt4-sql libqt4-debug-dev libqt4-dev
On r�cup�re �galement les binaires win32 sur le site de Trolltech
( /!\ 45Mo /!\ )
amalsek@amalsek-desktop:~$ wget http://wftp.tu-chemnitz.de/pub/Qt/qt/source/qt-win-opensource-4.1.2-mingw.exe
Puis on les extrait de l'executable grace a wine
amalsek@amalsek-desktop:~$ wine qt-win-opensource-4.1.2-mingw.exe
Notes: pas besoin de telecharger MinGW durant l'install.
ne pas oublier d'enregistrer les dll dans le registre de wine. (l'installeur vous le demande)
On copie les binaires windows dans un dossier
1 2
| amalsek@amalsek-desktop:~$ sudo cp -Rf ~/.wine/drive_c/Qt/4.1.2 /usr/local/
amalsek@amalsek-desktop:~$ sudo mv /usr/local/Qt /usr/local/qt4-win32 |
Maintenant on va toucher a la configuration de qmake - on va en cr�er une nouvelle (a partir de celle de windows)
1 2
| amalsek@amalsek-desktop:~$ sudo cp -Rf /usr/share/qt4/mkspecs/win32-g++ /usr/share/qt4/mkspecs/win32-x-g++
amalsek@amalsek-desktop:~$ sudo nano /usr/share/qt4/mkspecs/win32-x-g++/qmake.conf |
Les lignes a modifier sont les suivantes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| QMAKE_CXX = i586-mingw32msvc-g++
QMAKE_INCDIR = /usr/i586-mingw32msvc/include/
QMAKE_INCDIR_QT = /usr/local/qt4-w32/4.1.2/include
QMAKE_LIBDIR_QT = /usr/local/qt4-w32/4.1.2/lib
QMAKE_LINK = i586-mingw32msvc-g++
# ne pas oublier le -mwindows ici
QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows
#isEqual(MINGW_IN_SHELL, 1) {
QMAKE_DIR_SEP = /
QMAKE_COPY = cp
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm -f
QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rm -rf
#} else {
# QMAKE_COPY = cp
# QMAKE_COPY_DIR = cp -r
# QMAKE_MOVE = mv
# QMAKE_DEL_FILE = rm -f
# QMAKE_MKDIR = mkdir -p
# QMAKE_DEL_DIR = rm -rf
#}
# Enlever les .exe et rajouter -qt4
QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc-qt4
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic-qt4
# Je n'ai pas trouvé d'équivalent de ce fichier, j'ai quand meme enlevé le .exe
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
QMAKE_RC = i586-mingw32msvc-windres
QMAKE_STRIP = i586-mingw32msvc-strip |
A partir de la, normalement l'environnement est configur�. Pour compiler votre projet QT4, allez dans la racine de celui-ci et faites :
1 2 3
| amalsek@amalsek-desktop:~$ qmake-qt4 -project
amalsek@amalsek-desktop:~$ qmake-qt4 -spec win32-x-g++
amalsek@amalsek-desktop:~$ make |
Note: Si la compilation �choue car il manque des fichier du type "libQtGui_Debug", il est possible qu'il y ait besoin de rajouter la ligne "CONFIG -= debug" dans le fichier .pro g�n�r� par qmake-qt4 -project
L'ex�cutable se trouve plac� dans le r�pertoire release/ . Vous pouvez maintenant le lancer grace a la commande wine monprojet.exe !!!
Si vous avez des commentaires ou des am�liorations, n'h�sitez pas !!!
Mes sources :
http://silmor.de/29
http://www.dumbbell.fr/howto/win32-c...lation.fr.html
Partager