Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Building Qt 5 from Git/fr: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
'''French''' [[Building-Qt-5-from-Git-SimplifiedChinese|简体中文]] [[Building-Qt-5-from-Git-Bulgarian|Български]] [[Building-Qt-5-from-Git|English]]
[[Category:HowTo]]<br />[[Category:Developing_with_Qt::Qt 5]]


=Compiler Qt 5 depuis Git=
'''French''' [[Building Qt 5 from Git SimplifiedChinese|简体中文]] [[Building Qt 5 from Git Bulgarian|Български]] [[Building Qt 5 from Git|English]]


==Introduction==
[toc align_right=&quot;yes&amp;quot; depth=&quot;2&amp;quot;]


Cet article a pour objectif de vous donner quelques indices pour récupérer le Qt5 modularisé depuis git et de le compiler. Vous êtes invité à mettre à jour cet article au fil des changements pendant le développement. Ces instructions sont pour Linux, des ajustements seront probablement nécessaires pour d’autres plateformes.
= Compiler Qt 5 depuis Git =


==Récupérer le code source==
== Introduction ==


D’abord, clonez le dépôt git racine de qt5:
Cet article a pour objectif de vous donner quelques indices pour récupérer le Qt5 modularisé depuis git et de le compiler. Vous êtes invité à mettre à jour cet article au fil des changements pendant le développement. Ces instructions sont pour Linux, des ajustements seront probablement nécessaires pour d'autres plateformes.


En suivant le fichier <span class="caps">README</span>, il faut initialiser le dépôt. Cette opération clone les différénts sous-modules de Qt5:
== Récupérer le code source ==


''Indice1: Si vous souhaitez contribuer à Qt5, vous aurez besoin de passer l’option —codereview-username &lt;nom d’utilisateur Jira/Gerrit&gt; pour configurer une destination “gerrit” pour tous les sous-modules.''<br />''Indice2: Si vous rencontrez des problèmes pour télécharger le dépôt webkit (qui est relativement imposant), vous pouvez passer l’option —no-webkit.''<br />''Indice3: Si vous êtes connecté via un proxy ou firewall, passez l’option —http.''
D'abord, clonez le dépôt git racine de qt5:


==Configurer et compiler==
<code><br />git clone git://gitorious.org/qt/qt5.git qt5<br />cd qt5<br /></code>


A présent, configurez votre <span class="caps">PATH</span> pour utiliser les outils de Qt5 en lieu et place d’éventuels outils Qt4 qui pourraient être présents sur votre système.
En suivant le fichier README, il faut initialiser le dépôt. Cette opération clone les différénts sous-modules de Qt5:


Configurez maintenant la compilation (depuis le répertoire de plus haut niveau). Il est préférable de désactiver les tests, examples et démonstrations pour l’instant:
<code><br />./init-repository<br /></code>


Notez que nous désactivons également le support pour le style <span class="caps">GTK</span>. Ceci peut être nécessaire sur un certain nombre de systèmes (au moins <span class="caps">SUSE</span> et Gentoo) car `pkg-config —cflags gtk+-2.0` retourne des chemins qui incluent les répertoires d’include de Qt4.x du système.
''Indice1: Si vous souhaitez contribuer à Qt5, vous aurez besoin de passer l'option —codereview-username &lt;nom d'utilisateur Jira/Gerrit&amp;gt; pour configurer une destination &quot;gerrit&amp;quot; pour tous les sous-modules.''<br />''Indice2: Si vous rencontrez des problèmes pour télécharger le dépôt webkit (qui est relativement imposant), vous pouvez passer l'option —no-webkit.''<br />''Indice3: Si vous êtes connecté via un proxy ou firewall, passez l'option —http.''


L’option -nokia-developer désactive les vérifications de license et active l’option -developer-build qui exporte plus de symboles qu’une compilation classique de Qt afin de permettre à plus de classes et de fonctions d’être testées unitairement. De plus, cette option installe les binaires dans l’arbre des sources, évitant le besoin d’effectuer un ‘make install’.
== Configurer et compiler ==


Vous pouvez désormais compiler Qt comme à l’accoutumée (ajustez l’option -j pour accomoder votre nombre de cores <span class="caps">CPU</span>):
A présent, configurez votre PATH pour utiliser les outils de Qt5 en lieu et place d'éventuels outils Qt4 qui pourraient être présents sur votre système.
 
<code><br />export PATH=$PWD/qtbase/bin:$PATH<br /></code>
 
Configurez maintenant la compilation (depuis le répertoire de plus haut niveau). Il est préférable de désactiver les tests, examples et démonstrations pour l'instant:
 
<code><br />./configure -nokia-developer -nomake examples -nomake demos -nomake tests -no-gtkstyle<br /></code>
 
Notez que nous désactivons également le support pour le style GTK. Ceci peut être nécessaire sur un certain nombre de systèmes (au moins SUSE et Gentoo) car `pkg-config —cflags gtk+–2.0` retourne des chemins qui incluent les répertoires d'include de Qt4.x du système.
 
L'option -nokia-developer désactive les vérifications de license et active l'option -developer-build qui exporte plus de symboles qu'une compilation classique de Qt afin de permettre à plus de classes et de fonctions d'être testées unitairement. De plus, cette option installe les binaires dans l'arbre des sources, évitant le besoin d'effectuer un 'make install'.
 
Vous pouvez désormais compiler Qt comme à l'accoutumée (ajustez l'option -j pour accomoder votre nombre de cores CPU):
 
<code><br />make -j3<br /></code>


Ou compilez juste un module specifique, e.g. declarative, et les modules dont il dépend:
Ou compilez juste un module specifique, e.g. declarative, et les modules dont il dépend:


==Nettoyer==
<code><br />make module-qtdeclarative<br /></code>
 
== Nettoyer ==


Pour '''vraiment''' retrouver un arbre propre, utilisez:
Pour '''vraiment''' retrouver un arbre propre, utilisez:


puisque ‘make confclean’ ne fonctionne plus depuis le répertoire de plus haut niveau du dépôt.
<code><br />git submodule foreach 'git clean -dfx'<br /></code>
 
puisque 'make confclean' ne fonctionne plus depuis le répertoire de plus haut niveau du dépôt.
 
== Obtenir des mises à jour ==


==Obtenir des mises à jour==
Pour mettre à jour à la fois le dépôt qt5.git ainsi que tous les sous-modules vers la liste des révisions qui sont connues comme fonctionnelles, exécutez:<br /><code><br />git pull<br />git submodule update —recursive<br /></code>


Pour mettre à jour à la fois le dépôt qt5.git ainsi que tous les sous-modules vers la liste des révisions qui sont connues comme fonctionnelles, exécutez:<br />
'''Attention: git submodule update effectue un &quot;hard reset&amp;quot; des sous-modules, éliminant potentiellement tout commit local que vous auriez effectué! Si ce cas se présente (et que vous n'avez pas travaillé avec des branches), 'git reflog' est votre ami…'''


'''Attention: git submodule update effectue un “hard reset” des sous-modules, éliminant potentiellement tout commit local que vous auriez effectué! Si ce cas se présente (et que vous n’avez pas travaillé avec des branches), ‘git reflog’ est votre ami…'''
== Utiliser les branches master dans les sous-modules ==


==Utiliser les branches master dans les sous-modules==
Par défault, le &quot;checkout&amp;quot; ne contiendra pas les dernières branches master des dépôts de chaque sous-module, mais une combinaison de versions qui sont connues pour fonctionner ensemble. Si vous voulez vraiment les versions les plus récentes, vous pouvez le faire individuellement pour chaque module, e.g.


Par défault, le “checkout” ne contiendra pas les dernières branches master des dépôts de chaque sous-module, mais une combinaison de versions qui sont connues pour fonctionner ensemble. Si vous voulez vraiment les versions les plus récentes, vous pouvez le faire individuellement pour chaque module, e.g.
<code><br />cd qtdeclarative<br />git fetch<br />git checkout master origin/master<br /></code>


ou utiliser qt5_tool pour mettre à jour tous les dépôts sur leur branche master:
ou utiliser qt5_tool pour mettre à jour tous les dépôts sur leur branche master:


Cependant, il y a de bonnes chances que la compilation échoue en raison d’incompatibilités de version des sous-modules! Vous devriez demander à d’autres personnes développant activement un module comment résoudre ces situations.
<code><br />./qtrepotools/bin/qt5_tool -p<br /></code>


==Problèmes==
Cependant, il y a de bonnes chances que la compilation échoue en raison d'incompatibilités de version des sous-modules! Vous devriez demander à d'autres personnes développant activement un module comment résoudre ces situations.


Si vous rencontrez des problèmes avec les instructions ci-dessus (si vous voulez une compilation “prefix” mais obtenez des erreurs à propos de <span class="caps">QMAKESPEC</span> n’étant pas configuré correctement) vous pouvez essayer de construire les modules dont vous avez besoin à la main.
== Problèmes ==


Par exemple, pour travailler sur la version WebKit2 de QtWebKit, vous avez besoin de qtbase, qtscript, qtsvg, qtxmlpatterns et qtdeclarative.<br /> Après avoir cloné le dépôt de Qt5, exécutez le script init-repository mais après, utilisez:
Si vous rencontrez des problèmes avec les instructions ci-dessus (si vous voulez une compilation &quot;prefix&amp;quot; mais obtenez des erreurs à propos de QMAKESPEC n'étant pas configuré correctement) vous pouvez essayer de construire les modules dont vous avez besoin à la main.


===La configuration échoue avec le message “No <span class="caps">QPA</span> platform plugin enabled!===
Par exemple, pour travailler sur la version WebKit2 de QtWebKit, vous avez besoin de qtbase, qtscript, qtsvg, qtxmlpatterns et qtdeclarative.<br />Après avoir cloné le dépôt de Qt5, exécutez le script init-repository mais après, utilisez:
 
<code><br />git pull<br /># va tirer les versions testées par le système d'Intégration Continue<br />git submodule update<br />unset QTDIR
 
./configure -nokia-developer -nomake examples -nomake demos -nomake tests -no-webkit -no-gtkstyle -prefix-install -prefix /usr/local/Trolltech/Qt-5.0.0<br />cd qtbase<br />make<br />make install<br />cd ..<br />export QTDIR=/usr/local/Trolltech/Qt-5.0.0<br />export PATH=$QTDIR/bin:$PATH
 
for dir in qtscript qtsvg qtxmlpatterns qtdeclarative<br />do<br /> cd $dir<br /> qmake &amp;&amp; make<br /> cd ..<br />done
 
for dir in qtscript qtsvg qtxmlpatterns qtdeclarative<br />do<br /> cd $dir<br /> make install<br /> cd ..<br />done<br /></code>
 
=== La configuration échoue avec le message &quot;No QPA platform plugin enabled!&quot; ===


Vous devriew installer la librairie libxcb et ses dépendances, e.g. avec (sur Ubuntu/Debian):
Vous devriew installer la librairie libxcb et ses dépendances, e.g. avec (sur Ubuntu/Debian):


===qmlscene échoue (segfault) avec le message “Cannot create platform GL context, none of <span class="caps">GLX</span>, <span class="caps">EGL</span>, DRI2 is enabled”===
<code><br />sudo apt-get install libxcb*<br /></code>
 
Essayez d’installer le paquet libx11-xcb-dev:


après-coup, vous devez ré-exécuter la configuration et forcer la recompilation de qtbase/src/plugins/platforms/xcb.
=== qmlscene échoue (segfault) avec le message &quot;Cannot create platform GL context, none of GLX, EGL, DRI2 is enabled&amp;quot; ===


==Questions &amp; Commentaires==
Essayez d'installer le paquet libx11-xcb-dev:


Merci de poser vos questions et soumettre vos suggestions au sujet de cet article dans le forum: http://developer.qt.nokia.com/forums/viewthread/7018
<code><br />sudo apt-get install libx11-xcb-dev<br /></code>


===Categories:===
après-coup, vous devez ré-exécuter la configuration et forcer la recompilation de qtbase/src/plugins/platforms/xcb.


* [[:Category:Developing with Qt|Developing_with_Qt]]
== Questions &amp; Commentaires ==
** [[:Category:Developing with Qt::Qt-5|Qt 5]]
* [[:Category:HowTo|HowTo]]

Revision as of 09:41, 24 February 2015


French 简体中文 Български English

[toc align_right="yes&quot; depth="2&quot;]

Compiler Qt 5 depuis Git

Introduction

Cet article a pour objectif de vous donner quelques indices pour récupérer le Qt5 modularisé depuis git et de le compiler. Vous êtes invité à mettre à jour cet article au fil des changements pendant le développement. Ces instructions sont pour Linux, des ajustements seront probablement nécessaires pour d'autres plateformes.

Récupérer le code source

D'abord, clonez le dépôt git racine de qt5:

<br />git clone git://gitorious.org/qt/qt5.git qt5<br />cd qt5<br />

En suivant le fichier README, il faut initialiser le dépôt. Cette opération clone les différénts sous-modules de Qt5:

<br />./init-repository<br />

Indice1: Si vous souhaitez contribuer à Qt5, vous aurez besoin de passer l'option —codereview-username <nom d'utilisateur Jira/Gerrit&gt; pour configurer une destination "gerrit&quot; pour tous les sous-modules.
Indice2: Si vous rencontrez des problèmes pour télécharger le dépôt webkit (qui est relativement imposant), vous pouvez passer l'option —no-webkit.
Indice3: Si vous êtes connecté via un proxy ou firewall, passez l'option —http.

Configurer et compiler

A présent, configurez votre PATH pour utiliser les outils de Qt5 en lieu et place d'éventuels outils Qt4 qui pourraient être présents sur votre système.

<br />export PATH=$PWD/qtbase/bin:$PATH<br />

Configurez maintenant la compilation (depuis le répertoire de plus haut niveau). Il est préférable de désactiver les tests, examples et démonstrations pour l'instant:

<br />./configure -nokia-developer -nomake examples -nomake demos -nomake tests -no-gtkstyle<br />

Notez que nous désactivons également le support pour le style GTK. Ceci peut être nécessaire sur un certain nombre de systèmes (au moins SUSE et Gentoo) car `pkg-config —cflags gtk+–2.0` retourne des chemins qui incluent les répertoires d'include de Qt4.x du système.

L'option -nokia-developer désactive les vérifications de license et active l'option -developer-build qui exporte plus de symboles qu'une compilation classique de Qt afin de permettre à plus de classes et de fonctions d'être testées unitairement. De plus, cette option installe les binaires dans l'arbre des sources, évitant le besoin d'effectuer un 'make install'.

Vous pouvez désormais compiler Qt comme à l'accoutumée (ajustez l'option -j pour accomoder votre nombre de cores CPU):

<br />make -j3<br />

Ou compilez juste un module specifique, e.g. declarative, et les modules dont il dépend:

<br />make module-qtdeclarative<br />

Nettoyer

Pour vraiment retrouver un arbre propre, utilisez:

<br />git submodule foreach 'git clean -dfx'<br />

puisque 'make confclean' ne fonctionne plus depuis le répertoire de plus haut niveau du dépôt.

Obtenir des mises à jour

Pour mettre à jour à la fois le dépôt qt5.git ainsi que tous les sous-modules vers la liste des révisions qui sont connues comme fonctionnelles, exécutez:

<br />git pull<br />git submodule update recursive<br />

Attention: git submodule update effectue un "hard reset&quot; des sous-modules, éliminant potentiellement tout commit local que vous auriez effectué! Si ce cas se présente (et que vous n'avez pas travaillé avec des branches), 'git reflog' est votre ami…

Utiliser les branches master dans les sous-modules

Par défault, le "checkout&quot; ne contiendra pas les dernières branches master des dépôts de chaque sous-module, mais une combinaison de versions qui sont connues pour fonctionner ensemble. Si vous voulez vraiment les versions les plus récentes, vous pouvez le faire individuellement pour chaque module, e.g.

<br />cd qtdeclarative<br />git fetch<br />git checkout master origin/master<br />

ou utiliser qt5_tool pour mettre à jour tous les dépôts sur leur branche master:

<br />./qtrepotools/bin/qt5_tool -p<br />

Cependant, il y a de bonnes chances que la compilation échoue en raison d'incompatibilités de version des sous-modules! Vous devriez demander à d'autres personnes développant activement un module comment résoudre ces situations.

Problèmes

Si vous rencontrez des problèmes avec les instructions ci-dessus (si vous voulez une compilation "prefix&quot; mais obtenez des erreurs à propos de QMAKESPEC n'étant pas configuré correctement) vous pouvez essayer de construire les modules dont vous avez besoin à la main.

Par exemple, pour travailler sur la version WebKit2 de QtWebKit, vous avez besoin de qtbase, qtscript, qtsvg, qtxmlpatterns et qtdeclarative.
Après avoir cloné le dépôt de Qt5, exécutez le script init-repository mais après, utilisez:

<br />git pull<br /># va tirer les versions testées par le système d'Intégration Continue<br />git submodule update<br />unset QTDIR

./configure -nokia-developer -nomake examples -nomake demos -nomake tests -no-webkit -no-gtkstyle -prefix-install -prefix /usr/local/Trolltech/Qt-5.0.0<br />cd qtbase<br />make<br />make install<br />cd ..<br />export QTDIR=/usr/local/Trolltech/Qt-5.0.0<br />export PATH=$QTDIR/bin:$PATH

for dir in qtscript qtsvg qtxmlpatterns qtdeclarative<br />do<br /> cd $dir<br /> qmake &amp;&amp; make<br /> cd ..<br />done

for dir in qtscript qtsvg qtxmlpatterns qtdeclarative<br />do<br /> cd $dir<br /> make install<br /> cd ..<br />done<br />

La configuration échoue avec le message "No QPA platform plugin enabled!"

Vous devriew installer la librairie libxcb et ses dépendances, e.g. avec (sur Ubuntu/Debian):

<br />sudo apt-get install libxcb*<br />

qmlscene échoue (segfault) avec le message "Cannot create platform GL context, none of GLX, EGL, DRI2 is enabled&quot;

Essayez d'installer le paquet libx11-xcb-dev:

<br />sudo apt-get install libx11-xcb-dev<br />

après-coup, vous devez ré-exécuter la configuration et forcer la recompilation de qtbase/src/plugins/platforms/xcb.

Questions & Commentaires