Bonjour,
Merci et bravo pour cette gamme de mise en oeuvre de cross compilation sous Linux.
Mon problème est que malgré la clareté des explications (et qui ne semblent pourtant pas trop complexes), je n'y arrive pas.
A ma décharge, je suis débuttant en Qt (je développe en java depuis 10 ans, aie! aie! aie! ne me frappez plus )et je n'utilise Linux (ubuntu 10.04) que comme un end-user de base à titre perso.
J'ai donc installé :
- wine (opérationnel)
- mingw32 (j'arrive à compiler puis exécuter via wine un test.exe qui ne fait rien)
- installer qt-sdk-win-opensource-2010.05.exe (que j'arrive à exécuter avec wine)
- créer un mkspec avec les modifications proposées (peut-on avoir le fichier complet car peut-être ai-je des valeurs différentes ou fait quelques boulettes)
Par exemple, le make ne trouvait pas les programmes ui (qu'il allait chercher dans /usr/bin ; j'ai donc mis le chemin en dur dans le mkspec
Lorsque je lance le qtcreator windows via wine, j'arrive bien à exécuter dans l'outils mon programme mais je ne fais de cross-compilation là.
Bref, je suis un peu perdu :
1. et assez étonné que QTCreator natif (celui pour ubuntu) ne me permettent pas de changer de mkspec (je n'ai pas trouvé comment faire)
2. QTCreator ne permette pas facilement de faire du cross compil (sans passer par manip en ligne de commande).
3. Comment renseigner la variable QT_INSTALL_BINS ? Faut il faire pointer vers l'install Linux ou win32 ?
Pour éviter le problème de chemin vers ui &co, j'ai mis en dur le chemin vers mes binaires linux (c'est ce que j'ai compris quand j'ai lu "virer les extensions .exe"). Voici le message d'erreur finalement obtenu :
berny@berny-acer:~/Documents/qt/test$ make
make -f Makefile.Release
make[1]: entrant dans le répertoire « /home/berny/Documents/qt/test »
i586-mingw32msvc-g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows -Wl,-s -o release/test.exe release/main.o -L"~/.wine/drive_c/Qt/2010.05/qt/lib" -lQtGui -lQtCore
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/bin/ld: cannot find -lQtGui
collect2: ld a retourné 1 code d'état d'exécution
make[1]: *** [release/test.exe] Erreur 1
make[1]: quittant le répertoire « /home/berny/Documents/qt/test »
make: *** [release] Erreur 2
J'espère avoir posté au bon endroit (sinon, je déplacerai ma question).
Partager