Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.7.1 - Qt Creator : 4.2.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Compilation de Qt

Bonjour

Je savais pas ou mettre ce post alors "divers" pourquoi pas :P
Après 4 jours de galères je voulais vous faire part de mon retour d’expérience sur une compilation du Framework Qt

Allez c'est parti je me lance dans ma première compilation de Qt avec la configuration suivante :

- 5.3.1
- vs2010
- Angle
- Support de OpenSll
- WebKit

La première chose est de bien suivre les recommandations d'installation des tiers du tutoriel de qt-project :

http://qt-project.org/doc/qt-5/windows-requirements.html

Si ils ne sont pas bien installés c'est mort : la configuration de la compilation de Qt ne prend pas en compte tout les éléments et tout ne sera pas bien généré au final.

A noter que l'installation du package "OpenSSL" sur windows donne quelque chose d'assez bizarre. En effet il a des liens dynamiques dans son répertoire "include". Sous windows ça se passe pas bien.
Il met de vrais fichiers à la place avec le chemin vers le fichier concerné.
Pour que la compilation de Qt (qui utilise ces fichiers) se passe bien j'ai opté pour la solution de remplacer le contenu de chacun de ces fichiers par un "#include" vers le bon fichier.

Une fois tout installé je récupère les sources depuis une "distrib" de qt-project (msvc2010-opengl par exemple)
Les sources se trouvent dans le répertoire Src (original non ? :-))

On ouvre une fenêtre de commande Dos dans le répertoire Src
Dans ce répertoire il faut initialiser les variables d'environnements. Pour cela je créé un ".bat" comme suit que je lance :

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat"
set PATH = C:\Ruby200\bin;C:\Perl\bin;C:\Python34;%PATH%
set INCLUDE = C:\dev\openssl-1.0.1h\include;C:\dev\icu4c-53_1-Win32-msvc10\icu\include;%INCLUDE%
set LIB = C:\dev\icu4c-53_1-Win32-msvc10\icu\lib;%LIB%

On configure le projet Qt avec la commande qui suit :

configure.bat -platform win32-msvc2010 -openssl -debug-and-release -opensource -angle -nomake tests -nomake examples -skip qtwebkit-examples

et ensuite lancement de

nmake

Et puis j'attend .... longtemps ... très longtemps .. 9h sur un Corei-5 avec ssd ....

Et puis miracle tout apparaît dans le répertoire "qtbase\bin", "qtwebkit\bin" et "qtwebkit\import"

Bon je creuse un peu et je me rend compte que "QtWebprocess.exe" (indispensable avec une WebView) et en version "debug" :(
La seule explication que je trouve est que comme Qt ne différencie pas pour les ".exe" un nom différent pour la version "debug" et "release" : Donc le compilateur garde la version "debug" ...

Il faut donc reconfigurer Qt pour ne générer que la version "release" et pourvoir ainsi récupérer la version de "QtWebProcess.exe" en "release"
Et là plouf ... il faut oublier le fait de reconfigurer Qt (j'ai pas réussi) et en vue des forums c'est pas très net ...
Donc on fait place nette en effaçant le répertoire "Src" et on récupère celle de la "distrib" de Qt.

On configure le projet avec juste la génération de la "release" :

configure.bat -release -platform win32-msvc2010 -openssl -opensource -angle -nomake tests -nomake examples -skip qtwebkit-examples

et re :

nmake
Bon là c'est beaucoup plus rapide ...

Et hop on récupère bien une version de "QtWebProcess.exe".

Un test de notre projet Zeecrowd avec cette distribution fonctionne bien sur Windows Xp, Windows Seven et Windows 8 :-)

PS : si cette distribution intéresse quelqu'un je peux la déposer quelque part (pourquoi pas le crowd qtfr ]:D )

Réponses

  • Merci à toi pour ton retour d'expérience, je déplace le sujet dans trucs & astuces =)

    J'imagine que d'autre(s) compilation(s) viendront ? =)
  • Bonjour

    Le même tutoriel marche pour Qt 5.4.1

    J'ajoute qu'il faut aussi installer le SDK DirectX

    Depuis la version 5.4 il est possible de compiler Qt pour qu'il puisse choisir entre Angle ou OpenGl si ce dernier est installé et cela dynamiquement.

    J'ai changé la commande de configuration par celle ci :

    configure.bat -platform win32-msvc2010 -opengl dynamic -openssl -debug-and-release -opensource -nomake tests -nomake examples -skip qtwebkit-examples
    Tout a bien compilé je vous ferai un retour après un test de Zeecrowd dessus

    Cordialement
  • Bonjour

    Ascenseur émotionnel ...

    QtWebKit (obsolète mais bon j'en ai encore un peu besoin) et QtWebEngine (le futur) n'ont pas été compilé :-(

    Après quelques lectures un long chemin de croix m'attend. Je fais un poste expliquant la procédure dés que j'y arrive (si j'y arrive 8o )
  • May 2016 modifié
    Bonjour

    Qt 5.6 arrive avec son plein de nouveautés mais toujours pas de compilation sous VS2010

    Vous allez me dire mais c'est qui ce vieux croulant qui utilise encore VS2010.

    Bein figurez vous que c'est pour l'instant le seul moyen que l'on a trouvé pour être encore compatible sous Windows XP ... Windows quoi ? vous allez me dire .. oui oui Xp (C' était quand même un bon Os à l'époque)

    Mais qui utilise encore Windows Xp ???!!!!! Et bien ... Les écoles ... Malgré le plan de notre chère gouvernement d'inonder nos écoles de tablettes, la réalité du terrain c'est qu'ils ont toujours de vieux PC sous Xp avec écran cathodique (pour les plus jeunes il y a wikipedia pour "cathodique" :-) )

    Et comme le logiciel PostClass (que je développe) est pour les écoles ... CQFD

    DONC je reprend mon vieux post et me lance dans la compilation de 5.6 sous Windows 2010 et vous tiens au courant :-)

    A+

    (téléchargement de Qt à 56k en cours .. ça va être long ...)
  • (téléchargement de Qt à 56k en cours .. ça va être long ...)
    haha, il n'y a pas que ton OS qui date, dis moi, ton modem, quand tu te connectes, il ne fait pas des bruits bizarres après la numérotation ? :D
  • TROLL INSIDE détecté :))
  • Je surcharge le post,
    Si ça intéresse, j'ai cross-compilé Qt 5.5.1 pour raspberry.
    Par contre cela fait quelques centaines de méga, je ne sais pas trop sur quel support mettre ça.
    Après, j'ai voulu m'attaquer à QT5.6, mais la méthode semble différente car la compilation de qmake échoue.
    Quand j'aurai plus de temps, je regarderai cela plus profondément.
  • Un HD externe ?
  • héhé, je parlais d'un support sur lequel je pourrais mettre l'archive et que vous pourriez télécharger
    ;)
  • Bonjour

    Perso j'entame demain la compilation de Qt 5.7 pour VS 2010 demain matin mais babaOroms ton post me dit que je vais un peu morfler alors ....
  • Je ne sais pas trop, il faut tester. Par contre je ne sais pas combien de temps ils vont rester compatibles avec les anciens compilo.
  • Je test aujourd'hui et demain et je te dis ça ...
  • Bon bein c'est officiel ... Qt5.7 n'est pas compatible avec VS 2010 ...
  • July 2016 modifié
    Pour raspberry, j'ai build la semaine derniere 5.6, ca fonctionne bien : https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi (build sur le raspberry, pas en cross compile)

    Pour 5.7, ils ont supprimé le support du C++03, donc il faut un compilateur suffisamment a jour pour le support du C++11. Ce qui ne doit pas etre le cas de 2010.

    @zeecrowddev

    Il va falloir accepter une évidence : tu ne peux pas faire évoluer une partie des outils (Qt) dans un environnement qui n'évolue pas (Windows, MSVC). Tu es donc condamné a utiliser une version ancienne de Qt compatible avec ta cible.
  • July 2016 modifié
    Ou alors oublier VS et passer sous mingw ... je me tâte ...
  • Ne te tate pas trop, cela rend sourd...

    Sinon, c'est un peu contourner le probleme : il n'y a pas de raison que les anciennes versions de MingW restent compatibles dans le future (c'est deja peut etre plus le cas, Qt 5.7 utilise MingW 5.3)
  • July 2016 modifié
    @gbdivers : je suis hors sujet, mais combien de temps as-tu mis pour le build natif sur le rpi ?
  • 5 min. C'est le temps qu'il m'a fallut pour taper la commande "make", faire mon sac et rentrer chez moi. Le lendemain, c'était fini :)

    Aucun idée.
Connectez-vous ou Inscrivez-vous pour répondre.