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 :

Erreur de compilation d'un projet générée par QxEntityEditor


Sujet :

QxOrm

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Erreur de compilation d'un projet générée par QxEntityEditor
    Bonjour,

    J'ai réalisé un "MCD" via le logiciel QxEntityEditor puis ai généré le projet C++.

    Quand j'ouvre ce dernier avec Qt et que je le compile, j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Error: dependent '..\..\..\..\..\..\..\..\Libs\boost_1_54\include\boost\numeric\conversion\detail\preprocessed\numeric_cast_traits_common.hpp' does not exist.
    jom: C:\Users\bb\Dropbox\Professionnel\Lifeisgood\Application Ski Locker\Coding\build-SkiLocker.gen-Desktop_Qt_5_1_1_MSVC2012_32bit-Debug\Makefile [debug] Error 2
    17:29:02: Le processus "C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe" s'est terminé avec le code 2.
    Erreur lors de la compilation/déploiement du projet SkiLocker.gen (kit : Desktop Qt 5.1.1 MSVC2012 32bit)
    Lors de l'exécution de l'étape "Make"
    Le .pro généré a le contenu suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #################################################################################################
    ## File created by QxEntityEditor 1.1.1 (2013/12/07 18:29) : please, do NOT modify this file ! ##
    #################################################################################################
     
    include(C:/Libs/QxOrm/QxOrm.pri)
     
    TEMPLATE = lib
    CONFIG += dll
    DEFINES += _BUILDING_SKILOCKER
    INCLUDEPATH += C:/Libs/QxOrm/include
     
    CONFIG(debug, debug|release) {
    TARGET = SkiLockerd
    } else {
    TARGET = SkiLocker
    } # CONFIG(debug, debug|release)
     
    LIBS += -L"C:/Libs/QxOrm/lib"
     
    CONFIG(debug, debug|release) {
    LIBS += -l"QxOrmd"
    } else {
    LIBS += -l"QxOrm"
    } # CONFIG(debug, debug|release)
     
    include($$PWD/SkiLocker.gen.pri)
     
    SOURCES += $$PWD/src/SkiLocker_main.gen.cpp
    Auriez-vous une idée de pourquoi ?
    Les projets "test" de QxForm fonctionnent pourtant.

    Un grand merci d'avance,

  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


    Est-ce que tu pourrais stp poster les 2 fichiers suivants :
    * ton fichier QxOrm.pri ;
    * ton fichier projet pour QxEntityEditor : *.qxee.

    Tu as peut-être mis un chemin relatif dans ton fichier QxOrm.pri pour indiquer où se trouve boost (???).

    A voir, j'essaierai de reproduire ton problème avec tes fichiers...
    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
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Sources postées en MP.

    Merci,

  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
    Tu n'as pas envoyé le fichier QxOrm.pri (de ton package QxOrm).

    Remarque : les sources générées par QxEntityEditor, pas besoin de les envoyer, je peux facilement les régénérer avec QxEntityEditor
    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.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    C'est fait par MP, désolé !

  6. #6
    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
    J'ai regardé rapidement ton code :

    1- Ton fichier QxOrm.pri est correct ;
    2- Le fichier "include\boost\numeric\conversion\detail\preprocessed\numeric_cast_traits_common.hpp" est bien présent dans mon package boost (si tu as installé le package boost qui provient du site QxOrm).

    Donc pour moi, jusque là c'est OK.

    Ensuite d'après ton erreur, tu utilises "jom.exe", pourquoi ?
    Je te conseille d'utiliser nmake qui est le compilateur fourni par MSVC++.
    En utilisant nmake, je n'ai pas ton erreur.

    C'est du paramétrage QtCreator, tu as peut-être modifié le paramétrage de QtCreator pour utiliser jom. Pour ma part, sans rien paramétrer, c'est nmake qui est utilisé.

    Il me semble avoir vu que jom était limité à 122 caractères dans les chemins d'accès : ta ligne "..\..\..\..\..\..\..\..\Libs\boost_1_54\include\boost\numeric\conversion\detail\preprocessed\numeric_cast_traits_common.hpp" en fait 124.
    Ou alors essaye de placer ton projet "SkiLocker" plus proche de la racine de ton disque dur.

    Sinon, autre remarque, quand tu fais des relations depuis QxEntityEditor, laisse la décoration (faudra que je la rende obligatoire je pense) : il faut des pointeurs (le mieux, pointeur intelligent, c'est ce qui a par défaut). Sinon tu as une erreur de compil à cause des dépendances de fichiers #include.
    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.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Le fait de déplacer le projet dans l'arborescence pour réduire la taille du path a en effet réglé le problème. Merci d'avoir remarqué ça, ce n'est pas évident.

    J'aurais alors trois autres questions :

    1. Au niveau des décorations/collections, il faut laisser par défaut, cela veut-il dire "boost::shared_ptr" pour "Decoration" et "qx::QxCollection" pour "Collection" ? Peut-on garder les QList tout de même ?
    Voici ma nouvelle version de .qxee :
    https://www.dropbox.com/sh/wn577b3yoz5sr9w/QDa3SjfGFP

    2. Le projet C++ que génère QxEntityEditor est-il bien sous format de lib ? Car je vois les instructions "TEMPLATE = lib" et "CONFIG += dll" dans le .pro. Si tel est le cas, comment doit-on l'utiliser ? Comme une DLL normale ?

    3. Une fois notre semblant de MCD fait sur QxEntityEditor, y'a-t-il un quelconque moyen pratique de retranscrire ce modèle sur notre réelle base (PostreSQL pour ma part) ?

    Merci d'avance pour vos réponses,

    L.

  8. #8
    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
    Le fait de déplacer le projet dans l'arborescence pour réduire la taille du path a en effet réglé le problème.


    1. Au niveau des décorations/collections, il faut laisser par défaut, cela veut-il dire "boost::shared_ptr" pour "Decoration" et "qx::QxCollection" pour "Collection" ? Peut-on garder les QList tout de même ?
    Pour les collections, non, tu peux mettre ce que tu veux : QxOrm supporte plusieurs types de collections : std::vector, std::list, QList, QVector, QHash, boost::unordered_map, qx::QxCollection, etc...

    qx::QxCollection apporte des avantages par rapport aux autres collections, plus d'informations dans la FAQ ici : http://www.qxorm.com/qxorm_fr/faq.html#faq_80
    Mais si tu préfères utiliser QList, pas de soucis !

    Pour les décorations : oui il faut laisser une valeur pour les relations. Tu peux mettre boost::shared_ptr ou bien QSharedPointer.
    Ne met pas boost::optional, car tu auras des problèmes de compilation : boost::optional ne supporte pas les types incomplets (forward declaration).
    Je règle tout ça dans la prochaine version de QxEntityEditor...

    2. Le projet C++ que génère QxEntityEditor est-il bien sous format de lib ? Car je vois les instructions "TEMPLATE = lib" et "CONFIG += dll" dans le .pro. Si tel est le cas, comment doit-on l'utiliser ? Comme une DLL normale ?
    Oui, par défaut c'est une DLL comme une autre.
    Tu peux l'utiliser en tant que shared library.
    Autre possibilité : tu peux inclure le fichier *.pri généré dans ton propre exécutable si tu ne veux pas de DLL.

    J'ai fait en sorte d'avoir le choix : soit utiliser le projet généré en tant que DLL, soit inclure le .pri dans son propre exécutable.

    3. Une fois notre semblant de MCD fait sur QxEntityEditor, y'a-t-il un quelconque moyen pratique de retranscrire ce modèle sur notre réelle base (PostreSQL pour ma part) ?
    Oui, dans quelques jours... Peut-être demain si j'ai le temps de faire la version QxEntityEditor 1.1.2.
    Dans la version QxEntityEditor 1.1.2, il y aura un nouveau plugin pour exporter ton projet en fichier DDL. Tu pourras alors importer ce script SQL dans ta BDD pour générer automatiquement le schéma.
    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.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par QxOrm Voir le message
    Oui, dans quelques jours... Peut-être demain si j'ai le temps de faire la version QxEntityEditor 1.1.2.
    Dans la version QxEntityEditor 1.1.2, il y aura un nouveau plugin pour exporter ton projet en fichier DDL. Tu pourras alors importer ce script SQL dans ta BDD pour générer automatiquement le schéma.
    Ça serait super. Je vais beaucoup te demander mais qu'en penses-tu au plus tard pouvoir livrer une version 1.1.2 ? Que je puisse m'organiser en conséquence (car la feature de génération de code SQL est très très intéressante dans mon cas).

    Un grand merci d'avance,

    L.

  10. #10
    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
    Je souhaite sortir la version rapidement : d'ici la fin de la semaine c'est certain, avant si possible.

    EDIT : QxEntityEditor 1.1.2 vient de sortir, plus d'informations ici : http://www.developpez.net/forums/d14...-vient-sortir/
    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.

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

Discussions similaires

  1. Erreur à la compilation d'un projet NDK pour armv6
    Par moritan dans le forum Android
    Réponses: 1
    Dernier message: 09/07/2012, 11h41
  2. Réponses: 12
    Dernier message: 22/06/2010, 17h34
  3. [JAX WS] Erreur de compilation pour les classes générées
    Par seigneur.viggen dans le forum Services Web
    Réponses: 2
    Dernier message: 07/08/2009, 12h52
  4. Réponses: 16
    Dernier message: 26/05/2009, 18h17
  5. Réponses: 14
    Dernier message: 03/07/2006, 16h55

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