IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

QxOrm Discussion :

Compilation avec GCC 4.4.5 sous Linux x86_64


Sujet :

QxOrm

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 40
    Points : 22
    Points
    22
    Par défaut Compilation avec GCC 4.4.5 sous Linux x86_64
    Bonjour,

    Dans certains environnement, la compilation échoue avec le code source original. Je dois supprimer l'option d'utilisation de l'entête précompiler pour générer la librairie. Quelle peut être la cause de ce problème ?

    Ensuite, une fois la librairie générée, GCC affiche une erreur lors de l'édition des liens de mon application. Toutes les interfaces liées à l'utilisation de QtNetwork n'ont pas été intégrées dans la librairie. Je penses qu'il y a un problème avec cette partie de code dans QxServer.cpp (par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if _QX_ENABLE_QT_NETWORK_DEPENDENCY
     
     
     
    #include <QxPrecompiled.h>
    L'entête précompiler devrait être inclus avant la condition de précompilation. Je me trompe ?

    ruddy32

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut
    Dans certains environnement, la compilation échoue avec le code source original.
    Quelles sont les différences entre les environnements qui fonctionnent et ceux qui ne fonctionnent pas ?

    Peut-être que tu utilises un compilateur qui ne supporte pas les en-têtes pré-compilés (dans ce cas, je ne conseille pas d'utiliser QxOrm, les temps de compilation seraient affreux ).

    L'entête précompiler devrait être inclus avant la condition de précompilation. Je me trompe ?
    Tu as certainement raison : j'avoue n'avoir testé les 2 nouvelles options de compilation de la version 1.1.6 de QxOrm (_QX_ENABLE_QT_NETWORK_DEPENDENCY et _QX_ENABLE_QT_GUI_DEPENDENCY) uniquement avec l'éditeur Visual C++ 2008 (et ça fonctionne correctement avec cet éditeur).
    GCC doit utiliser un autre mécanisme pour ces en-têtes pré-compilés, et donc le mieux est d'appliquer le patch que tu proposes.
    Je corrigerai ça dans la prochaine version...

    Si tu veux appliquer le patch sur la 1.1.6, voici la liste des fichiers à corriger :

    * Pour _QX_ENABLE_QT_GUI_DEPENDENCY :
    QxSerialize_QBrush.cpp
    QxSerialize_QColor.cpp
    QxSerialize_QFont.cpp
    QxSerialize_QImage.cpp
    QxSerialize_QMatrix.cpp
    QxSerialize_QPicture.cpp
    QxSerialize_QPixmap.cpp
    QxSerialize_QRegion.cpp


    * Pour _QX_ENABLE_QT_NETWORK_DEPENDENCY :
    IxParameter.cpp
    IxService.cpp
    QxConnect.cpp
    QxServer.cpp
    QxThread.cpp
    QxThreadPool.cpp
    QxTools.cpp
    QxTransaction.cpp

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    Quelles sont les différences entre les environnements qui fonctionnent et ceux qui ne fonctionnent pas ?
    Ceux sont quasiment les mêmes. La seule différence était le make (3.81 et 3.82), mais cela ne change rien. Je pencherai pour un problème d'entête précompilé qui ne serait pas présent dans un fichier à compiler ou inclus tard dans le code source.
    Si tu veux appliquer le patch sur la 1.1.6 ...
    J'ai créer un patch qui corrige ces fichiers et supprime l'utilisation de l'entête précompilé. :-(
    Le patch sera disponible avec le script d'installation Gentoo.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut
    L'en-tête précompilé me semble nécessaire pour utiliser QxOrm : il ne faut pas chercher à le désactiver !

    Si tu as ce type d'erreur : "one or more PCH files were found, but they were invalid".
    => c'est certainement un résidu d'une ancienne compil qui est présente quelque part dans un cache de ton environnement.

    J'ai fait une recherche rapide sur Google et suis tombé sur ce lien : http://hintsforums.macworld.com/arch...p/t-90973.html
    Après avoir nettoyé correctement toute trace d'une ancienne compil (visiblement dans un dossier '/Library/Caches/'), ça a résolu le problème : je pense que tu dois avoir à peu près la même problématique.

    Sinon, concernant Gentoo, je ne connais pas du tout.
    Je ne sais pas si tu as vu mais j'ai ajouté un fichier dans la distribution de QxOrm : le fichier 'QxOrm.ebuild'.
    J'ai récupéré ce fichier à cette adresse : http://bugs.gentoo.org/show_bug.cgi?id=351563
    Si tu penses qu'il faut apporter des modifs, on le fera dans la prochaine version de QxOrm...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. compilation de gcc 4.7.1 sous Linux
    Par ptyxs dans le forum GCC
    Réponses: 3
    Dernier message: 07/07/2012, 16h57
  2. Cross-compilation avec GCC 4 sous Windows pour Linux
    Par dourouc05 dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/04/2009, 18h25
  3. compilation avec GCC 3.4.6 sous Debian Etch
    Par meufeu dans le forum Administration système
    Réponses: 1
    Dernier message: 18/10/2008, 03h55
  4. Réponses: 5
    Dernier message: 09/04/2006, 19h02
  5. [débutant]compiler avec gcc sous linux
    Par Ickou dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/03/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo