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 :

Problème de compilation sous Linux x86_64 g++


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
    Bonjour,
    Lors de la compilation sous une plateforme Linux Gentoo x86_64 avec GNU de QxOrm 1.1.5, le résultat est le suivant :
    make -j5
    /usr/bin/moc -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc include/QxService/QxThread.h -o qt/moc/moc_QxThread.cpp
    /usr/bin/moc -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc include/QxService/QxThreadPool.h -o qt/moc/moc_QxThreadPool.cpp
    x86_64-pc-linux-gnu-g++ -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -x c++-header -c include/QxPrecompiled.h -o QxOrm.gch/c++
    x86_64-pc-linux-gnu-g++ -c -include QxOrm -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o bool_array.o src/QxMemLeak/bool_array.cpp
    x86_64-pc-linux-gnu-g++ -c -include QxOrm -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o debug_new.o src/QxMemLeak/debug_new.cpp
    x86_64-pc-linux-gnu-g++ -c -include QxOrm -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o mem_pool_base.o src/QxMemLeak/mem_pool_base.cpp
    x86_64-pc-linux-gnu-g++ -c -include QxOrm -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o static_mem_pool.o src/QxMemLeak/static_mem_pool.cpp
    x86_64-pc-linux-gnu-g++ -c -include QxOrm -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o IxSingleton.o src/QxSingleton/IxSingleton.cpp
    cc1plus: error: QxOrm: No such file or directorycc1plus:
    cc1plus: error: error: one or more PCH files were found, but they were invalidQxOrm: No such file or directory

    cc1plus: cc1plus: error: error: use -Winvalid-pch for more information
    one or more PCH files were found, but they were invalid
    cc1plus: error: use -Winvalid-pch for more information
    make: *** [bool_array.o] Error 1
    make: *** Waiting for unfinished jobs....
    make: *** [mem_pool_base.o] Error 1
    cc1plus: error: QxOrm: No such file or directory
    cc1plus: error: one or more PCH files were found, but they were invalid
    cc1plus: error: use -Winvalid-pch for more information
    cc1plus: error: QxOrm: No such file or directory
    cc1plus: error: one or more PCH files were found, but they were invalid
    cc1plus: error: use -Winvalid-pch for more information
    cc1plus: error: QxOrm: No such file or directory
    cc1plus: error: one or more PCH files were found, but they were invalid
    cc1plus: error: use -Winvalid-pch for more information
    make: *** [debug_new.o] Error 1
    make: *** [static_mem_pool.o] Error 1
    make: *** [IxSingleton.o] Error 1

    Est-il nécessaire d'avoir l'option de compilation "-include QxOrm"? Si je supprime cette option dans le Makefile généré par qmake, alors la compilation se déroulement. Ensuite il y a un problème de dépendance avec QtGui.

    Suite à l'installation de QtGui le problème reste présent. le problème apparait sur deux machines, mais pas sur la troisième. Toutes les machines sont de type x86_64.
    Qu'elle peut être la source de ce problème ?

    Après avoir supprimé l'option "-include QxOrm", le système affiche ce résultat :
    x86_64-pc-linux-gnu-g++ -c -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o moc_QxThread.o qt/moc/moc_QxThread.cpp
    In file included from include/QxSerialize/QxSerializeFastCompil.h:35,
    from include/QxSerialize/Qt/QxSerialize_QString.h:42,
    from include/QxCommon/QxBool.h:36,
    from include/QxService/QxTransaction.h:35,
    from qt/moc/../../include/QxService/QxThread.h:35,
    from qt/moc/moc_QxThread.cpp:10:
    include/QxSerialize/boost/QxSerializeInclude.h:92:62: error: boost/archive/impl/archive_pointer_oserializer.ipp: No such file or directory
    include/QxSerialize/boost/QxSerializeInclude.h:93:62: error: boost/archive/impl/archive_pointer_iserializer.ipp: No such file or directory
    x86_64-pc-linux-gnu-g++ -c -pipe -march=nocona -O2 -pipe -Wall -W -D_REENTRANT -fPIC -D_QX_BUILDING_QX_ORM -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Iinclude -I/usr/include -Iqt/moc -o moc_QxThreadPool.o qt/moc/moc_QxThreadPool.cpp
    In file included from include/QxSerialize/QxSerializeFastCompil.h:35,
    from include/QxSerialize/Qt/QxSerialize_QString.h:42,
    from include/QxCommon/QxBool.h:36,
    from include/QxService/QxTransaction.h:35,
    from qt/moc/../../include/QxService/QxThreadPool.h:35,
    from qt/moc/moc_QxThreadPool.cpp:10:
    include/QxSerialize/boost/QxSerializeInclude.h:92:62: error: boost/archive/impl/archive_pointer_oserializer.ipp: No such file or directory
    include/QxSerialize/boost/QxSerializeInclude.h:93:62: error: boost/archive/impl/archive_pointer_iserializer.ipp: No such file or directory
    In file included from include/QxTraits/get_base_class.h:37,
    from include/QxSerialize/boost/QxExportDllMacroHpp.h:37,
    from include/QxSerialize/QxSerializeFastCompil.h:36,
    from include/QxSerialize/Qt/QxSerialize_QString.h:42,
    from include/QxCommon/QxBool.h:36,
    from include/QxService/QxTransaction.h:35,
    from qt/moc/../../include/QxService/QxThread.h:35,
    from qt/moc/moc_QxThread.cpp:10:
    include/QxTraits/get_class_name.h: In static member function 'static const char* qx::trait::get_class_name<T>::get()':
    include/QxTraits/get_class_name.h:99: error: there are no arguments to 'qAssert' that depend on a template parameter, so a declaration of 'qAssert' must be available
    include/QxTraits/get_class_name.h:99: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    In file included from include/QxSerialize/QxSerializeFastCompil.h:38,
    from include/QxSerialize/Qt/QxSerialize_QString.h:42,
    from include/QxCommon/QxBool.h:36,
    from include/QxService/QxTransaction.h:35,
    from qt/moc/../../include/QxService/QxThread.h:35,
    from qt/moc/moc_QxThread.cpp:10:
    include/QxSerialize/boost/QxImportDllBoostArchive.h: At global scope:
    include/QxSerialize/boost/QxImportDllBoostArchive.h:52: error: expected constructor, destructor, or type conversion before '(' token
    make: *** [moc_QxThread.o] Error 1
    make: *** Waiting for unfinished jobs....
    In file included from include/QxTraits/get_base_class.h:37,
    from include/QxSerialize/boost/QxExportDllMacroHpp.h:37,
    from include/QxSerialize/QxSerializeFastCompil.h:36,
    from include/QxSerialize/Qt/QxSerialize_QString.h:42,
    from include/QxCommon/QxBool.h:36,
    from include/QxService/QxTransaction.h:35,
    from qt/moc/../../include/QxService/QxThreadPool.h:35,
    from qt/moc/moc_QxThreadPool.cpp:10:
    include/QxTraits/get_class_name.h: In static member function 'static const char* qx::trait::get_class_name<T>::get()':
    include/QxTraits/get_class_name.h:99: error: there are no arguments to 'qAssert' that depend on a template parameter, so a declaration of 'qAssert' must be available
    include/QxTraits/get_class_name.h:99: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    In file included from include/QxSerialize/QxSerializeFastCompil.h:38,
    from include/QxSerialize/Qt/QxSerialize_QString.h:42,
    from include/QxCommon/QxBool.h:36,
    from include/QxService/QxTransaction.h:35,
    from qt/moc/../../include/QxService/QxThreadPool.h:35,
    from qt/moc/moc_QxThreadPool.cpp:10:
    include/QxSerialize/boost/QxImportDllBoostArchive.h: At global scope:
    include/QxSerialize/boost/QxImportDllBoostArchive.h:52: error: expected constructor, destructor, or type conversion before '(' token
    make: *** [moc_QxThreadPool.o] Error 1

    La libraire Boost installée est la version 1.45, avec BOOST_VERSION = 104100.
    Toutes les machines utilisent le même compilateur, même version.
    Une idée sur la cause du problème ?

  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
    Quelle est la version du compilateur ?

    Une chose qui me semble bizarre dans ce que tu as écris :
    La libraire Boost installée est la version 1.45, avec BOOST_VERSION = 104100..
    Tu devrais plutôt avoir : BOOST_VERSION = 104500
    Il y a donc peut-être un problème au niveau de l'installation de la librairie boost.

    Ça pourrait expliquer tes 1ère erreurs de compilation :
    include/QxSerialize/boost/QxSerializeInclude.h:92:62: error: boost/archive/impl/archive_pointer_oserializer.ipp: No such file or directory
    include/QxSerialize/boost/QxSerializeInclude.h:93:62: error: boost/archive/impl/archive_pointer_iserializer.ipp: No such file or directory


    Sinon concernant "-include QxOrm", je pense que ça doit être la ligne "INCLUDEPATH += ./include" du fichier <QxOrm.pri> qui génère ça non ?
    C'est utile pour éviter des erreurs de compilation si on n'a pas paramétré les répertoires.
    Visiblement ce n'est pas supporté par ton environnement, c'est bizarre.
    Il faudra peut-être ajouter une condition dans le fichier <QxOrm.pri> pour ne pas avoir "INCLUDEPATH += ./include" dans certains cas.

    Concernant la dépendance avec QtGui, une option de compilation sera ajoutée au fichier <QxConfig.h> à la prochaine version de QxOrm permettant de supprimer cette dépendance si on le souhaite.

  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
    Pour résoudre ce problème de compilation, j'ai supprimé l'utilisation de l'entête précompiler et ajouter la ligne suivante au début du fichier <Transaction.h> :
    #include <QxPrecompiled.h>

    La non utilisation de l'entête de compilation entraine des erreurs de compilation sur les fichiers présent dans <qt/moc>. Je sais pour quelle raison la compilation échoue sur la version de base avec le message suivant :
    cc1plus: error: QxOrm: No such file or directorycc1plus:
    cc1plus: error: error: one or more PCH files were found, but they were invalidQxOrm: No such file or directory

Discussions similaires

  1. Problème de compilation sous Linux
    Par baccali dans le forum Assembleur
    Réponses: 6
    Dernier message: 04/09/2011, 11h58
  2. Compilation avec GCC 4.4.5 sous Linux x86_64
    Par ruddy32 dans le forum QxOrm
    Réponses: 3
    Dernier message: 07/06/2011, 15h32
  3. problème de compilation sous linux
    Par Myrddin_ dans le forum Langage
    Réponses: 9
    Dernier message: 03/07/2009, 15h53
  4. Problêmes de compilation sous linux
    Par Micky_du_57 dans le forum GLUT
    Réponses: 4
    Dernier message: 25/05/2007, 20h37
  5. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52

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