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
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2011
    Messages : 9
    Points : 8
    Points
    8

    Par défaut Compilation sous CentOS avec Qt5 et QxOrm

    Bonsoir à tous,

    Je parviens à compiler QxOrm et les classes générées par QxEE, j'ai bien les librairies, elles dépendent bien de Qt5 (check avec ldd). Je précise parce que j'ai aussi Qt4 dans mon environnement.
    Je souhaite tester tout ça dans un programme existant. J'ai modifié mon makefile, avec (entre autres) les liens vers -lQxOrm -lMaLibCompileeViaLesSourcesGenereesParQxEE -lQt5Core -lQt5Sql nécessaires à la compilation.

    Voici les erreurs que j'obtiens à la compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    test.o: Dans la fonction QString::QString():
    test.cpp:(.text._ZN7QStringC2Ev[_ZN7QStringC5Ev]+0x13): reference indefinie vers QString::shared_null
    test.o: Dans la fonction QString::~QString():
    test.cpp:(.text._ZN7QStringD2Ev[_ZN7QStringD5Ev]+0x2d): reference indefinie vers QString::free(QString::Data*)
    test.o: Dans la fonction operator+(QString const&, char const*):
    test.cpp:(.text._ZplRK7QStringPKc[_ZplRK7QStringPKc]+0x3c): reference indefinie vers QString::fromAscii(char const*, int)
    test.o: Dans la fonction operator+(char const*, QString const&):
    test.cpp:(.text._ZplPKcRK7QString[_ZplPKcRK7QString]+0x29): reference indefinie vers QString::fromAscii(char const*, int)
    test.o: Dans la fonction QHash<QString, QString>::findNode(QString const&, unsigned int*) const:
    test.cpp:(.text._ZNK5QHashI7QStringS0_E8findNodeERKS0_Pj[_ZNK5QHashI7QStringS0_E8findNodeERKS0_Pj]+0x1c): reference indefinie vers qHash(QString const&)
    test.o: Dans la fonction QHashNode<QString, QString>::same_key(unsigned int, QString const&):
    test.cpp:(.text._ZN9QHashNodeI7QStringS0_E8same_keyEjRKS0_[_ZN9QHashNodeI7QStringS0_E8same_keyEjRKS0_]+0x32): reference indefinie vers QString::operator==(QString const&) const
    collect2: error: ld returned 1 exit status
    Ma classe test étant :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include "test.hh"
    #include "../cpp-wrapper.h"
     
    #include "../../Qx/orm_src/include/xxx_precompiled_header.gen.h"
    #include "../../Qx/orm_src/include/xxx_TEST1.gen.h"
     
    #include <QxOrm_Impl.h>
     
    /**
    *
    * Wrapper C
    *
    */
     
    void Test_test() {
    	xxx::Test::test();
    }
     
    using namespace yyy;
     
    namespace xxx {
    	void Test::test() {
    		typedef shared_ptr<TEST1> Test1_ptr;
    		Test1_ptr t1; t1.reset(new TEST1()); t1->setCHAMP_1_STR("orm1"); t1->setCHAMP_2_INT(11);
    		Test1_ptr t2; t2.reset(new TEST1()); t2->setCHAMP_1_STR("orm2"); t2->setCHAMP_2_INT(12);
    		Test1_ptr t3; t3.reset(new TEST1()); t3->setCHAMP_1_STR("orm3"); t3->setCHAMP_2_INT(13);
     
    		typedef vector<Test1_ptr> type_lst_test1;
    		type_lst_test1 lst_test1;
    		lst_test1.push_back(t1);
    		lst_test1.push_back(t2);
    		lst_test1.push_back(t3);
     
    		qx::QxSqlDatabase::getSingleton()->setDriverName("QODBC");
    		qx::QxSqlDatabase::getSingleton()->setDatabaseName("xxx");
    		qx::QxSqlDatabase::getSingleton()->setHostName("xxx");
    		qx::QxSqlDatabase::getSingleton()->setUserName("xxx");
    		qx::QxSqlDatabase::getSingleton()->setPassword("xxx");
     
    		QSqlError daoError = qx::dao::insert(lst_test1);
    	}
    }
    Ce qui m'étonne c'est que ça compile très bien avec les librairies de Qt4 (-lQtCore -lQtSql dans mon cas). Par contre plantage à l'exécution évidemment puisque QxOrm et MaLibCompileeViaLesSourcesGenereesParQxEE.so sont compilés avec Qt5.

    Avez-vous une idée ?

    Merci d'avance !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2011
    Messages : 9
    Points : 8
    Points
    8

    Par défaut

    Suis-je bête... La présence de Qt4 justement, m'a mis dedans. Ce sont les includes de Qt4 qui étaient considérés, donc ça pouvait pas coller.

  3. #3
    Membre expert

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

    Informations forums :
    Inscription : avril 2010
    Messages : 476
    Points : 3 780
    Points
    3 780

    Par défaut



    Ce sont les includes de Qt4 qui étaient considérés, donc ça pouvait pas coller
    Oui pas toujours évident de jouer avec plusieurs versions de bibliothèques
    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. probleme de link de fichiers objets compilés sous arm avec l'utilitaire ld
    Par Folkene dans le forum Bibliothèques, systèmes et outils
    Réponses: 0
    Dernier message: 17/11/2011, 14h59
  2. Compilation sous eclipse avec cygwin
    Par lloull dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 02/01/2009, 14h32
  3. compilation sous Unix avec g++
    Par skwert dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 26/09/2008, 22h19
  4. Pb de compilation sous linux avec geany 0.12
    Par dnode57 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 05/12/2007, 18h37
  5. Compilation sous windows avec devc++
    Par dr_octopus74 dans le forum Dev-C++
    Réponses: 4
    Dernier message: 17/01/2007, 22h48

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