← retour à la page principale du projet
Rapport du jeudi 30 juin 2005

Matin:
Pas de réponse sur le forum où j'avais posté hier soir ce matin.
J'ai la forte impression que toutes les solutions proposées ne marchent soit qu'avec la version 3 (par exemple: qmake -tp vc projet.pro est sans sens en Qt4, & c'est la solution qu'on me porpose partout), soit ne marchent pas avec la version GPL (après tout, pourquoi la commande qmake -tp vc projet.pro ou même la commande qmake -tp vcapp projet.po ne marchent-elles pas? Probablement parce que la GPL n'est pas compatible VS, & donc qu'au lieu de me sortir une erreur, elle me sort quelque chose d'incohérent).
Nicolas m'a proposé quelques liens vers des questions déjà posées (merci):
http://lists.trolltech.com/qt-interest/2005-06/thread00842-0.html : discussion autour de « comment coder proprement »; probablement pour une autre version que la mienne, puisque:
In Visual Studio TEMPLATE = vcapp works for me, and I run qmake from the .pro/Visual Studio project directory without any parameters.
http://lists.trolltech.com/qt-interest/2005-05/thread00312-0.html : pour te rappeler que VS et Gcc ne sont binairement pas compatible
OK, ne cherchons plus. La commande d'installation exacte est: configure -platform <nom_de_la_plateforme>. Or, même VS6, VS2002 & VS2003 sont censées être supportés (c'est écrit dans la doc'), ces logiciels ne le sont pas par Qt4GPL. En fait, le fait d'utiliser un nouveau logiciel à peine sorti provoque ce genre de déboire (c'est exactement les même soucis que j'ai eu à programmer pour Longhorn durant les 3 dernières semaines). La documentation fournie ainsi que les forums traitent à la fois de Qt3, Qt4 commercial & Qt4 GPL. & la plupart du temps, les gens soutiennent mordicus que telle ou telle solution marche, alors qu'elle ne marche pas sous votre version. Dans mon cas, configure -platform win32-g++ marche & lance la compilation, mais configure -platform win32-msvc ou configure -platform win32-msvc.net semblent marcher, mais n'installent rien (malgré la fichier README dans le répertoire d'installation ou le lien http://www.trolltech.com/products/qt/qt4-platforms.html). En effet, le dossier C:\Qt\4.0.0\mkspecs ne contient pas les sous-dossiers nécessaires... Bref, qmake ne marchera pas avec VS. Reste à savoir si on arrivera tout-de-même à compiler du .cpp généré par Designer avec VS...
http://lists.kde.org/?l=kde-cygwin&m=112008381716844 : ce lien a l'air intéressant, mais j'avoue que je ne comprend pas sa signification (si tu peux m'aider sur ce point, Nicolas...).
J'ai un petit peu avancé: j'ai remplacé les #include <Qapplication> par #include « Qt/qapplication.h> en ajoutant le répertoire C:\Qt\4.0.0\include dans la liste des dossiers à inclure lors de la compilation. Mais maintenant, apparemment, il me sort une autre erreur assez incompréhensible. Après pas mal de temps passé à essayer de modifier les différentes propriétés, j'abandonne temporairement l'idée de compiler sous VS. Quelqu'un  donnera bien la solution sur Internet, si les connaisseurs ne se bornent pas à penser que Qt4GPL's not compatible with VS signifie impossible de faire quoique ce soit avec VS & Qt4 (ce qui ne peut-être que faux, vu que VS peut compiler n'importe quel code .cpp avec les bonnes références vers les librairies).
Revenons à Dev-C++.
Zut, j'ai exactement les mêmes erreurs...
Visual Studio:
Error    1    error LNK2019: unresolved external symbol __imp_??1QApplication@@UAE@XZ referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    2    error LNK2019: unresolved external symbol __imp_??1QPushButton@@UAE@XZ referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    3    error LNK2019: unresolved external symbol __imp_?exec@QApplication@@SAHXZ referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    4    error LNK2019: unresolved external symbol __imp_?show@QWidget@@QAEXXZ referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    5    error LNK2019: unresolved external symbol __imp_?resize@QWidget@@QAEXHH@Z referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    6    error LNK2019: unresolved external symbol __imp_??1QString@@QAE@XZ referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    7    error LNK2019: unresolved external symbol __imp_??0QPushButton@@QAE@ABVQString@@PAVQWidget@@@Z referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    8    error LNK2019: unresolved external symbol __imp_??0QString@@QAE@PBD@Z referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    9    error LNK2019: unresolved external symbol __imp_??0QApplication@@QAE@AAHPAPAD@Z referenced in function _wmain    EssaiConsoleHelloWorld.obj    
Error    10    fatal error LNK1120: 9 unresolved externals    c:\Documents and Settings\Gilles\My Documents\Visual Studio 2005\Projects\EssaiConsoleHelloWorld\EssaiConsoleHelloWorld\Debug\EssaiConsoleHelloWorld.exe    1    
Dev-C++:
../HelloWorld/main.o(.text+0x17a):main.cpp: undefined reference to `_imp___ZN12QApplicationC1ERiPPc'
../HelloWorld/main.o(.text+0x1bd):main.cpp: undefined reference to `_imp___ZN11QPushButtonC1ERK7QStringP7QWidget'
../HelloWorld/main.o(.text+0x247):main.cpp: undefined reference to `_imp___ZN12QApplication4execEv'
../HelloWorld/main.o(.text+0x264):main.cpp: undefined reference to `QPushButton::~QPushButton()'
../HelloWorld/main.o(.text+0x279):main.cpp: undefined reference to `QApplication::~QApplication()'
../HelloWorld/main.o(.text+0x2dc):main.cpp: undefined reference to `QPushButton::~QPushButton()'
../HelloWorld/main.o(.text+0x309):main.cpp: undefined reference to `QApplication::~QApplication()'
../HelloWorld/main.o(.text$_ZN7QWidget6resizeEii[QWidget::resize(int, int)]+0x2d):main.cpp: undefined reference to `_imp___ZN7QWidget6resizeERK5QSize'

../HelloWorld/main.o(.text$_ZN7QStringD1Ev[QString::~QString()]+0x20):main.cpp: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
../HelloWorld/main.o(.text$_ZN7QStringC1EPKc[QString::QString(char const*)]+0x39):main.cpp: undefined reference to `_imp___ZN7QString11shared_nullE'
../HelloWorld/main.o(.text$_ZN7QStringC1EPKc[QString::QString(char const*)]+0x69):main.cpp: undefined reference to `_imp___ZN7QString9fromAsciiEPKci'
../HelloWorld/main.o(.text$_ZN7QStringC1EPKc[QString::QString(char const*)]+0x80):main.cpp: undefined reference to `_imp___ZN7QStringaSERKS_'7
Concrètement, je peux modifier ceci:
Éditeur de lien: rajouter manuellement des fichiers .a .lib .o ou .obj
Répertoire bibliothèques (pour les DLL? Mais alors, il faut les rajouter en paramètre dans les définitions du préprocesseur? Typiquement le répertoire \bin\?)
Répetoire d'inclusion (typiquement le répertoire \include\ qui contient des sous-répertoires vers des fichiers .h)
Répertoire Ressource (pour les ressource, manifestement inutile pour moi)
Bon, j'ai remplacé le makefile de Dev-C++ par celui généré par Qt (qmake). J'ai cru un instant que le HelloWorld allait marcher... erreur...
Message d'erreur:
Compilateur: Default compiler
Exécution de  make...
mingw32-make -f "Makefile" all
mingw32-make -f Makefile.Debug all

mingw32-make[1]: Entering directory `C:/Documents and Settings/Gilles/My Documents/Visual Studio 2005/Projects/Dev-C++HelloWorld'
g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.0.0/include/QtGui" -I"C:/Qt/4.0.0/include/QtCore" -I"C:/Qt/4.0.0/include" -I"." -I"C:/Qt/4.0.0/include/ActiveQt" -I"debug" -I"." -I"C:\Qt\4.0.0\mkspecs\win32-g++" -o debug\main.o main.cpp

g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.0.0/include/QtGui" -I"C:/Qt/4.0.0/include/QtCore" -I"C:/Qt/4.0.0/include" -I"." -I"C:/Qt/4.0.0/include/ActiveQt" -I"debug" -I"." -I"C:\Qt\4.0.0\mkspecs\win32-g++" -o debug\mainbis.o mainbis.cpp

g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,windows -o "debug\Dev-C++HelloWorld.exe" debug\main.o debug\mainbis.o  -L"C:\Qt\4.0.0\lib" -lmingw32 -lqtmaind -lQtCored4 -lQtGuid4

mingw32-make[1]: Leaving directory `C:/Documents and Settings/Gilles/My Documents/Visual Studio 2005/Projects/Dev-C++HelloWorld'

mingw32-make -f Makefile.Release all

mingw32-make[1]: Entering directory `C:/Documents and Settings/Gilles/My Documents/Visual Studio 2005/Projects/Dev-C++HelloWorld'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.0.0/include/QtGui" -I"C:/Qt/4.0.0/include/QtCore" -I"C:/Qt/4.0.0/include" -I"." -I"C:/Qt/4.0.0/include/ActiveQt" -I"release" -I"." -I"C:\Qt\4.0.0\mkspecs\win32-g++" -o release\main.o main.cpp

g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.0.0/include/QtGui" -I"C:/Qt/4.0.0/include/QtCore" -I"C:/Qt/4.0.0/include" -I"." -I"C:/Qt/4.0.0/include/ActiveQt" -I"release" -I"." -I"C:\Qt\4.0.0\mkspecs\win32-g++" -o release\mainbis.o mainbis.cpp

g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\Dev-C++HelloWorld.exe" release\main.o release\mainbis.o  -L"C:\Qt\4.0.0\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4

C:\Program Files\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lQtGui4
collect2: ld returned 1 exit status

mingw32-make[1]: *** [release\Dev-C++HelloWorld.exe] Error 1

mingw32-make[1]: Leaving directory `C:/Documents and Settings/Gilles/My Documents/Visual Studio 2005/Projects/Dev-C++HelloWorld'

mingw32-make: *** [release-all] Error 2

Exécution terminée
En bref, le message d'erreur donné est Ne trouve pas -lQtGui4. J'ai pourtant un lien vers QtGUI4.dll...
J'avance (trop) lentement, mais j'avance...

Après-midi:
Continuation des tests avec Dev-C++; résolution partielle des problèmes grâce à Séb'
Longue discussion avec Séb'
Test avec XWin32 (version 5.4) sur moinette; installation de 2 librairies par Jean-Charles. Le programme a réclamé libCoin.so.40 & libSoQt.so.20. Il n'a plus réclamé de librairie (donc pas les deux librairies devel que nous n'avons pas installé).
Message d'erreur de XWin:
bash-2.05b$ ProjetCosme/cosme/bin/cosme
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

cosme: gl.c:1001: cc_glglue_instance: Assertion `glGetError() == 0x0 && "GL error when calling glGetString() -- no current GL context?"' failed.
Aborted (core dumped)
Le programme se lance, la fenêtre s'ouvre, le menu & les boutons (Qt & Coin) s'affichent, mais la partie zone 3D noire semble poser pb, & le programme se referme immédiatement.
Longue réunion avec Audrey, Yannick & Sébastien. Nous avons discuté du portage (Qt4WinGPL & éventuellement XWin32 ou équivalent) ainsi que de l'interface du programme en elle-même (Yannick a reparlé de sa volonté de simplifier la création du mouvement). Nous avons fait une petite démonstration du programme, & cherché une solution pour simplifier la création d'un mouvement.Il a été émis comme idée d'utiliser un autre Dragger (http://doc.coin3d.org/Coin/group__draggers.html), notamment tester SoCenterballDragger (http://doc.coin3d.org/Coin/classSoCenterballDragger.html). Le test sera effectué dans quelques jours, quand je me serai habitué à SoQt.

À effectuer prochainement:
Mise à jour du site web, terminer le rapport du jour
Audrey doit s'occuper de (ou faire faire) la spécification du format .out

Valid XHTML 1.0 Transitional