Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Environnement de développement QxOrm avec MinGW
    Bonjour,

    Je viens de passé de Qt 5.0.1 à Qt 5.2.1 et pour faire les chose bien je voulais passé de QxORM 1.2.5 à la version 1.2.6
    J'avais déjà eu des difficultées à compilé QxORM 1.2.5 avec Qt 5.0.1 et son MinGW fournie (GCC 4.7.2):
    !!!!: MinGW-builds-0.3.0
    user: alexey
    date: 01.17.2013-10:48:11
    args: --buildroot=/temp --jobs=4 --mingw-compress --rev=8 gcc-4.7.2 --threads=posix --exceptions=sjlj --preload x64 x32
    ...
    mais finalement ça marchais.
    Maintenant avec QxORM 1.2.6, Qt 5.2.1 et son MinGW fournie (GCC 4.8):
    !!!!: MinGW-builds-2.0.0
    user: alexey
    date: 04.17.2013-23:00:19
    args: --buildroot=/temp --jobs=3 --mingw-compress --rev=2 gcc-4.8.0 --threads=posix --exceptions=dwarf
    ...
    j'ai un bug à la compilation avec "cc1plus.exe".

    J'ai tenté de compiler QxORM 1.2.6 avec Qt 5.2.1 et GCC v4.7.2 et là pas de souci, mais lors de l'exécution des tests (qxBlog.exe) j'ai le message suivant:
    Le point d'entrer de procédure InterlockedCompareExchange@12 est introuvable dans la bibliothèque de liens dynamique libstdc++-6.dll.
    ou celui-ci
    Le point d'entrer de procédure __gxx_personality_sj0 est introuvable dans la bibliothèque de liens dynamique libstdc++-6.dll.
    J'ai le même message que j'utilise boost compilé avec GCC v4.7.2, v4.8 ou ceux fournie par QxORM (compilé avec GCC v4.5).

    Donc que dois-je faire pour que ça marche ?
    Recompilé Qt avec GCC v4.7.2 ?
    Utilisé MSYS ?
    ...
    Merci.

  2. #2
    Membre expert


    j'ai un bug à la compilation avec "cc1plus.exe".
    Oui c'est un bug connu de MinGW GCC 4.8 et les larges precompiled header, plus d'infos ici :
    * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56926
    * http://www.developpez.net/forums/d13...ngw-4-8-4-7-a/

    Donc que dois-je faire pour que ça marche ?
    Recompilé Qt avec GCC v4.7.2 ?
    Utilisé MSYS ?
    Difficile de t'aider sur ce genre de problématique : on dirait qu'il y a un conflit de DLL.
    Tu peux vérifier tes variables d'environnement, ou bien essayer de mettre toutes les DLL dans un même dossier (recherche les dépendances avec http://www.dependencywalker.com/).
    Après oui si Qt est compilé avec MinGW GCC 4.8 et que tout les autres composants sont en MinGW GCC 4.7 => c'est pas top !

    Remarque : dans tous les cas, sous Windows, je recommande de travailler avec MSVC++.
    Un tutoriel est disponible ici pour installer correctement un environnement de développement :
    http://marty-lionel.developpez.com/t...-sous-windows/
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  3. #3
    Membre à l'essai
    Bonjour,

    ...recherche les dépendances avec http://www.dependencywalker.com/.
    Merci de m'avoir fait découvrir dependencywalker, très bien ce petit programme. J'ai ainsi pu voir où était le conflit, et effectivement je doit recompiler Qt et ses Add-On. Par chance j'ai pas eu trop de problème, les fichier .pro et .pri sont très bien fait, j'ai seulement dû faire 2 modifications :
    - précisé le link avec icu (v.49) pour qtBase et qtWebkit
    - renseigner le source de sqlite pour qtWebkit
    Et installer perl, ruby, bison/flex, gperf pour qtWebkit et python pour qtdeclarative.

    Effectivement je pourrais utilisé Visual Studio mais je travail également sous ubuntu et je fais pas mal de Java, alors je trouve plus simple d'utilisé plus ou moins le même environnement et surtout le même IDE (en l’occurrence NetBeans).

    Je ne doit pas être le seul à avoir ce genre de contrainte ou préférence alors je ferai probablement un tuto.
    Merci

    PS: Je suis en train de compiler QxORM après je teste tous ça et ajouterai résolu en fin de journée si tout va bien, mais a priori ça devrai le faire.

  4. #4
    Membre à l'essai
    Bonjour,

    ça a été du boulot mais ça marche à nouveau comme avant. Environ 20 h de compilation au total , la prochaine fois je ferai un batch.
    Désolé j'ai mis un peu de temps à répondre mais je comprenais pas pourquoi les programmes de test (qxBlog) marchais et pas les miens.
    En fait j'avais juste oublié d'ajouter les 2 nouveaux DEFINES : _QX_QT_GUI_DEPENDENCY et _QX_MODE_DEBUG/_QX_MODE_RELEASE.

    ++

  5. #5
    Membre expert
    ça marche à nouveau comme avant.
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.