[Résolu][Qt4] Compiler QT avec et pour VC++

K-lo
[Résolu][Qt4] Compiler QT avec et pour VC++

Je me suis permi de mettre en titre de la discution, le titre de votre article du magazine n°89 (et oui ça remonte a septembre 2006).
Puisque j'ai des problème a compiler Qt sous visual :

J'ai télécharger Qt4
Donc je le désarchive dans un repertoire C:/Qt/
Je télécharge le patch indiquer dans votre magazine (pour adapté les outils de construction de Qt, pour VC++ (ma version est 2005)) que je desarchive dans C:/Qt/
Ensuite je lance ce patch : le fichier installpatch43.bat

Ensuite depuis la console de Visual j'exécute comme indiqué la commande
qconfigure.bat msvc2005 -qmake -Qt-libpng -release -shared
Il effectue un court traitement et me demande si je veux installer qmake
je reponds "Yes" et il me sort une erreur fatale

Console VC wrote:
NMAKE : fatal error U1073 incapable d'obtenir '../include/QtScript/qscriptengine.h'

Effectivement je n'ai même pas de dossier ../include/QtScript

Du coup je suis bloqué
:evil:

Qu'ai-je donc bien pu louper ? :?

fredericmazue

Salut k-lo

Quote:
Qu'ai-je donc bien pu louper ?

D'essayer en septembre 2006...
Non sans blague. Parce que depuis, de nombreuses mises à jour de Qt sont sorties et il n'est pas à exclure que le patch ne soit plus valable.
Mais ça ne doit pas être un problème. Tu sais, utiliser les binaires de Qt avec Gcc ça va vraiment très bien, et je ne suis pas sûr qu'on y gagne à se servir du compilateur de Microsoft. Peut être même qu'on perd, mais c'est un vaste et surtout un autre débat. Mais résumons: tout l'article doit rester valable hormis le paragraphe 4 qui est le dernier.

Cela dit:

Quote:
Effectivement je n'ai même pas de dossier ../include/QtScript

C'est normal. Qtscript est intégré dans QT 4.3. Or l'article est antérieur à ça et le patch aussi...

Alors deux choses:

- Je me demande si Qtscript fait partie de QT Open. Aurais tu téléchargé l'évaluation de la version commerciale ?

- Si tu as bien téléchargé la version Open, il y a sûrement moyen de désactiver Qtscript dont tu n'as nul besoin pour l'instant. Vois dans le configure s'il y a une option du genre --without-qtscript et si oui, vois si tu peux la passer dans le qconfigure.bat

K-lo

Quote:
- Si tu as bien téléchargé la version Open, il y a sûrement moyen de désactiver Qtscript dont tu n'as nul besoin pour l'instant. Vois dans le configure s'il y a une option du genre --without-qtscript et si oui, vois si tu peux la passer dans le qconfigure.bat

J'ai bien la version opensource. Donc je vais chercher en suivant ton conseil...

Quote:
et je ne suis pas sûr qu'on y gagne à se servir du compilateur de Microsoft. Peut être même qu'on perd, mais c'est un vaste et surtout un autre débat.

Non ne rentrons pas dans un débat de ce type car le pire je serais certainement en accord avec toi
fredericmazue

Quote:
on ne rentrons pas dans un débat de ce type car le pire je serais certainement en accord avec toi

:D

Ben alors dans ce cas, utilise le package de Qt qui vient avec gcc.
Et tu crées des projets type "Makefile" dans Visual Studio. Comme ça tu gardes l'éditeur et le débogueur qui sont quand même plutôt biens. Et au bout de 10 mn, tu n'y penseras même plus que tu as changé de compilo :)

K-lo

fredericmazue wrote:
Ben alors dans ce cas, utilise le package de Qt qui vient avec gcc.

Tu parle avec Mingv?

Sinon j'ai insisté (oui je suis très tétu :D ) et j'ai vu que c'est moi qui me suis "mal" mis a jour .
J'ai la version de QT 4.2.3 et j'ai installer la version du path d'adaptation 4.3 hors il fallait la version 4.2.3. J'ai recommencé en suivant votre article (même s'il date => comme quoi j'ai confiance en votre mag :D)
Bref, j'ai juste changé une manière de faire : après avoir exécuter la commande qconfigure... j'ai lancé la commande nmake (au lieu de make comme indiqué dans votre article).
Tout se déroule bien enjoy :).

Mais là ou ça pose probleme c'est lorsque j'ai voulu tester l'un des exemples de QT.
- J'ai donc crée un projet MakeFile
- J'ai ajouté les fichiers .h .cpp et .ui dans mon projet
- J'ai inclu le repertoire C:/Qt/include a VC++
- Et dans les propriété de mon projet j'ai fais comme indiquer (et c'est la peut être que l'article est trop vieu quoique...) : je selectionne Release et je renseigne les entrées :
Build Command Line : nmake
Rebuild All Command Line : qmake -project
qmake
nmake release
Clean CommandLine : nmake clean
Outpout : Release\test.exe

Bref je lance la régénération du projet et là c'est le drame : 50 erreurs de ce type

1> qmake test.pro -win32 -o Makefile.test.test.test.test.test.test.test.test.test.test.test.
test.test.test.test.test.test.test.test.test.test.test.test.test.test
Makefile.test.test.test.test.test.test.test.test.test.test.test.
test.test.test.test.test.test.test.test.test.test.

1>NMAKE : fatal error U1052: fichier 'Makefile.test.test.test.test.test.test.test.test.test.test.test.
test.test.test.test.test.test.test.test.test' introuvable
1>Stop.
1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake.exe"'á: code retour '0x2'
1>Stop.
1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake.exe"'á: code retour '0x2'
1>Stop.
1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake.exe"'á: code retour '0x2'
fredericmazue

Quote:
Tu parle avec Mingv?

Oui c'est ça.
Mingw = MIN(imal) G(cc) pour W(indows)

Quote:
j'ai lancé la commande nmake (au lieu de make comme indiqué dans votre article).

Oui bien sûr c'est nmake, puisqu'on est avec Visual, forcément.
Il y a une coquille dans l'article ? :oops:
Vraiment désolé.
Quote:
Tout se déroule bien enjoy

Bon :)

Quote:
Bref je lance la régénération du projet et là c'est le drame

Aïe...
Quote:
1> qmake test.pro -win32 -o Makefile.test.test.test.test.test.test.

Heu je dois dire que je ne comprend pas ce test.test.test

A ce stade, l'article n'est pas "vieux". Ce qui est dit doit toujours être valable.
Mais il y a quelque chose que je ne suis pas dans ce que tu as fait. Un exemple de Qt dis tu ? Mais ces exemples viennent déjà avec leurs fichiers .pro. On dirait que tu en a généré un.

Mais de toutes façons, je ne sais pas ce qui se passe. :oops:
Un outil make (ou nmake) ça travaille récursivement. et le test.test.test alors tout l'air d'une grosse déconnante récursive. Maintenant pourquoi ça se produit il ? Mystère.
Faudrait que je fasse un essai. mais pour ça, il faut de j'ai le temps, à commencer par désinstaller mon Qt pro pour remettre l'open. C'est assez lourd.
Je me demande quand même si le patch est bon et si qmake (je dis bien qmake) et bien construit. Quand j'avais fait mes essais pour l'article, je n'ai pas vu l'ombre d'un de ces problèmes. Tu sais les patches comme ça, il suffit de trois fois rien pour que ça échoue.

Quote:
Sinon j'ai insisté (oui je suis très tétu

C'est un entêtement que je comprends, moi aussi dans une situation comme ça, j'aime bien arriver à faire marcher.
Mais franchement gcc (MingW) il va bien, avec sans doute une STL plus performante que celle de VC et aussi il n'y a pas ces warning "deprecated" scandaleux. Alors je me permets d'être têtu moi aussi et te recommander à nouveau MingW :)
K-lo

Alors très bien ! Je vais jetter mon VC++ :D
op un produit MS direct dans la corbeille :lol: bref c'est le pied rien qu'a y penser.

Bon trève de plaisanterie... Hum je vais donc dabors me pencher sur MingW avant de me lancé dans QT (la dernière fois que j'ai compilé en ligne de commande c'était sur Linux et travailler sous Linux, surtout sur console, c'est nettement plus sympathique (oui je pourrais me mettre sur linux mais là j'ai pas le choix... :cry:)

Bon t'embeite à de reproduire le problème je vais calmer ma tete de mule et passer par gcc. :D

fredericmazue

Quote:
un produit MS direct dans la corbeille

Pas entièrement à la poubelle.
L'éditeur, le débogueur et l'achèvement de code sont très bien. Et le fait que tu puisse t'en servir avec d'autres compilateurs est également très bien :)

Quote:
Hum je vais donc dabors me pencher sur MingW

Rien de bien difficile. Et autre intérêt, c'est que le jour où tu iras sous Linux, avec ton code Qt, tu retrouveras tes marques pour le compiler avec gcc :)

Quote:
Bon t'embeite à de reproduire le problème

J'y ai réfléchi depuis hier, et franchement, je ne vois pas ce que ça peut être.
K-lo

Si je suis ton résonnement et surtout si j'ai bien compris

- Je créer ma fenetre avec Qt Designer
- Je créer un projet vide sous VC++
- J'écris mon code source
- Je compile avec la console de QT avec la commande qmake -project et apres j'exécute la commande make ?

Je me sens un peu bête de poser cette question mais j'ai pas l'habitude de coder avec différents produits...

fredericmazue

Pas tout à fait
Tu crées un projet Makefile.
Tu crées tes fenêtres et autres avec le QtDesigner.
Tu incorporres les fichiers au projet
Et tu compiles le tout sous Visual.

Comment :?: Ben comme dit dans l'article screugneugneu :)
Tu sais, le paragraphe 3 "Compiler sous Visual C++" , juste avant le paragraphe 4 spécifique au compilateur de Visual et qui t'a posé tant de problèmes. :D

Quote:
Je compile avec la console de QT

Allo :?:
K-lo

fredericmazue wrote:
Pas tout à fait
Tu crées un projet Makefile.

Ca c'est fait. :)
fredericmazue wrote:
Tu crées tes fenêtres et autres avec le QtDesigner.

Ca aussi ;)

fredericmazue wrote:
Tu incorporres les fichiers au projet
Idem :D

fredericmazue wrote:
Et tu compiles le tout sous Visual.

Comment :?: Ben comme dit dans l'article screugneugneu :)
Tu sais, le paragraphe 3 "Compiler sous Visual C++" , juste avant le paragraphe 4 spécifique au compilateur de Visual et qui t'a posé tant de problèmes. :D


Et là j'ai un problème je suis bien le paragraphe trois et lorsque je lance la regénération du projet et il me dit quil ne connais pas les commandes -qmake et make
En gros j'ai l'impression que Visual cherche à compiler avec son propre compilateur et non avec MingW ce qui prouve que j'ai un problème de configuration (je dois lui forcer a utiliser MingW).

fredericmazue wrote:

Quote:
Je compile avec la console de QT

Allo :?:

Oui en relisant ça choque mais lorsque l'on installe QT utilisable avec MingW, il installe dans le dossier QT un "Qt Command Prompt" qui est une console prenant en charge les ddl QT mais est en fait une console pour MingW....
fredericmazue

Quote:
Et là j'ai un problème je suis bien le paragraphe trois et lorsque je lance la regénération du projet et il me dit quil ne connais pas les commandes -qmake et make

Hey man, tu ne crois pas que tu pourrais les mettre dans ton PATH les commandes ?
:lol:
C'est là qu'on voit que l'intoxiqué de Windows que tu es devrait faire un peu de Linux pour retrouver ses fondamentaux informatiques ;)

Tu sais je voudrais pas être lourd, mais quand même je ne peux m'empêcher de te dire que c'est dit dans l'article, qui faut mettre le PATH à jour. Il est vrai que c'est dit au paragraphe 1 ;)

Quote:
Oui en relisant ça choque mais lorsque l'on installe QT utilisable avec MingW, il installe dans le dossier QT un "Qt Command Prompt" qui est une console prenant en charge les ddl QT mais est en fait une console pour MingW....

Donc c'est une simple console Windows quoi... :)
K-lo

fredericmazue wrote:

Hey man, tu ne crois pas que tu pourrais les mettre dans ton PATH les commandes ?
:lol:

En fait ça y était, bah oui j'ai suivit tout l'article et pas qu'une fois...
Le problème vient de ma 2ème installation : lorsque j'ai installer QT simple le répertoire était c:/QT
mais depuis l'installation de QT avec MingW y a le petit répertoire qui est apparu (celui de la version c:/Qt/4.2.3) que je n'ai pas tenu contenu... donc je mesuis dit c'est bon mes variables sont toujours défini sauf que le chemin était pas indiquer...

fredericmazue wrote:

C'est là qu'on voit que l'intoxiqué de Windows que tu es devrait faire un peu de Linux pour retrouver ses fondamentaux informatiques ;)
:oops: m'en parle pas...

Quote:

Donc c'est une simple console Windows quoi... :)
et qui met le PATH a jour lorsque tu le lance, en prime :lol: mais j'ai vu ça apres...

Bon c'étais très laborieu mais j'ai tendance a apprendre de cette manière (c'est en me plantant et en faisant des oublis que j'apprends)...
Bref je vais me pencher sur les possibilités de la bibliothèque car là j'ai des erreur de compilations :P mais je vais debugguer ça seul.

Mais la vraiment bonne nouvelle c'est que votre article est encore d'actualité :wink:

fredericmazue

Quote:
Bon c'étais très laborieu mais j'ai tendance a apprendre de cette manière (c'est en me plantant et en faisant des oublis que j'apprends)...

Ah là tu sais tu n'es pas le seul. J'en connais au moins un autre ;)
K-lo

Comme on a pu le voir plus haut, compiler avec Qt fut très laborieu (pour ma part - pas très doué moi :D)

Mais chose faite, j'ai ensuite testé Qt pour adapter une application console vers une appli avec une vrai interface (bouton quitter et tout :lol: )
Bref QT se révèle puissante et très complète (nettement plus complète que quand je l'avais testé pour la première fois en BTS (y'a 3 ou 4 ans de ça) :P!

Quelques temps d'adaptation pour repérer les classes, méthodes... Mais comme ceci est valable pour toutes bibliothèques.

Bref j'ai pris mon temps avant d'utiliser Qt mais maintenant je me demande comment je vais faire pour m'en passer (pour du développement en C++)...

Seul problème vient de l'utilisation des classes traitant du XML mais va falloir me concentrer plus sur le sujet avant de venir crier ici pour demander de l'aide :P

Merci pour m'avoir conseillé Qt et de m'avoir rappeler que ça existait :D

fredericmazue

Quote:
Bref j'ai pris mon temps avant d'utiliser Qt mais maintenant je me demande comment je vais faire pour m'en passer (pour du développement en C++)...

On ne peut pas.
A moins d'utiliser un autre toolkit très puissant comme wxWidgets.
Mais QT a ceci de supérieur (parmi d'autres choses ) qu'il y a un concepteur graphique bien foutu et un outil pour intégrer un système d'aide à l'application développée.

En tous cas, ce qu'on ne peut raisonnablement pas faire c'est développer avec C++ en MFC :lol:

Quote:
Quelques temps d'adaptation pour repérer les classes, méthodes... Mais comme ceci est valable pour toutes bibliothèques.

C'est tout à fait normal en regard de la taille de la bête.

Quote:
Seul problème vient de l'utilisation des classes traitant du XML

Qu'est-ce qui t'empêche de continuer à utiliser tinyXML dont nous avons parlé sur ce forum ?

Quote:
Merci pour m'avoir conseillé Qt et de m'avoir rappeler que ça existait

C'était vraiment avec plaisir. J'aime bien pendre la défense des bons outils et rappeler la médiocrité d'un autre ;)
K-lo

fredericmazue wrote:

Quote:
Seul problème vient de l'utilisation des classes traitant du XML

Qu'est-ce qui t'empêche de continuer à utiliser tinyXML dont nous avons parlé sur ce forum ?

Rien du tout en fait, mais je voulais voir comment le faire avec Qt, simple curiosité :)

K-lo

Mon problème de linker venait du fait que je n'ai pas rajouter dans mon *.pro la ligne suivante : Qt += xml