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

Discussion :

Problème d'include sous Ubuntu

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut Problème d'include sous Ubuntu
    Bonjour!

    J'ai le sdk Qt installé sur ma distribution Linux Ubuntu 11.10.

    Là j'ai besoin d'utiliser la classe QLibrary, et l'inclusion du fichier QLibrary me pose des problèmes un peu étranges, pourtant j'ai bien ce path sur mon système :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/include/qt4/QtCore
    Voici mon petit code qui ne compile pas, dans lequel je fait bien un include de qui se trouve aussi dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/include/c++/4.6/iostream
    .:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <iostream>
    #include <QLibrary>
    // définition du type de fonction
    typedef int (*StringLength)(char*);
    // création d'un objet QLibrary lié à string_util (.dll, .so ou autre)
    QLibrary lib("string_util");
    // récupération d'un pointeur sur notre fonction partagée
    StringLength strLength = (StringLength)lib.resolve("strlen");
    if(strLength)
      // devrait renvoyer 9... si tout va bien ;)
      std::cout << "Kreog " << strLength("QiLibrary") << "!!!!!!!!!!!" << std::endl;
    Voici l'erreur générée même quand je spécifie le répertoir d'include via l'option -I :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    veron@Papi-Inspiron-1501:~/mes_tests$ g++ test_qlibrary.cpp -I /usr/include/
    test_qlibrary.cpp:2:20: erreur fatale: QLibrary : Aucun fichier ou dossier de ce type                                                                                               
    compilation terminée.
    Et quand je fais un export en concaténant ce répertoire à mon
    PATH
    , au
    PATH
    ou
    C_PLUS_INCLUDE_PATH
    , j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    veron@Papi-Inspiron-1501:~/mes_tests$ g++ test_qlibrary.cpp 
    In file included from /usr/include/qt4/QtCore/QLibrary:1:0,
                     from test_qlibrary.cpp:2:
    /usr/include/qt4/QtCore/qlibrary.h:45:28: erreur fatale: QtCore/qobject.h : Aucun fichier ou dossier de ce type
    compilation terminée.
    veron@Papi-Inspiron-1501:~/mes_tests$
    Comme quoi, je risque de me retrouver à gérer l'environnement pour le preprocessing et la compilation de toutes les unité de compilation Qt, juste pour deux lignes de code test.

    Quelqu'un a-t-il déjà rencontré ce genre d'erreur, et si oui ça peut être quoi le souci?

    Merci.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 887
    Points : 219 341
    Points
    219 341
    Billets dans le blog
    123
    Par défaut
    Bonjour,

    J'ai l'impression que vous essayez de faire la compilation à la main et non pas avec un logiciel intelligent comme QtCreator.

    Même pour une compilation "à la main" il faut utiliser les commandes suivantes :
    qmake -project
    qmake
    make
    Mais encore, mieux vaut utiliser Qt Creator.

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour

    PATH -> chemin pour aller chercher les binaires. Normal que mettre un répertoire contenant des en-têtes ne sert à rien.
    Du coup, mettre le chemin dans C_PLUS_INCLUDE_PATH est beaucoup mieux, cela indique à gcc où il doit aller chercher les en-têtes.
    Par contre, si tu mets /usr/include/qt4/QtCore, tu n'indiques pas le répertoire de Qt, mais le répertoire d'un module de Qt. Donc il va te trouver QLibrary sans problème, par contre, toutes les dépendences de QLibrary (en particulier QObject) seront cherché à partir de ce point, c'est à dire dans /usr/include/qt4/QtCore/QtCore/qobject.hIl faut mettre simplement /usr/include/qt4 et pour inclure il faut obligatoirement donner le nom du module : #include <QtCore/QLibrary>Bon courage

    PS: et bien sur, il faut prendre en compte la remarque de LittleWhite concernant qmake

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2009
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2009
    Messages : 218
    Points : 130
    Points
    130
    Par défaut
    Merci et désolé!

    J'étais passé à côté de qmake carrément, car ça fait très longtemps que je n'ai pas utilisé le framework, et je ne l'ai pas souvent régulièrement utilisé.

    Je me suis rendu compte de ma bêtise après avoir posté.

    Merci pour vos réponses toutefois.

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

Discussions similaires

  1. Probléme de clavier sous ubuntu
    Par koKoTis dans le forum Ubuntu
    Réponses: 6
    Dernier message: 15/10/2007, 14h11
  2. Problème de son sous Ubuntu 6.10
    Par RAPTISTA dans le forum Ubuntu
    Réponses: 10
    Dernier message: 13/07/2007, 17h23
  3. [Qt]Problème d'include sous vc2005 express
    Par Cheps dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 05/10/2006, 09h38
  4. Problème d'affichage sous Ubuntu
    Par bigben89 dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/05/2006, 12h06
  5. Problème d'include sous Dev-c++ 4.9.8.0
    Par Argonz dans le forum Dev-C++
    Réponses: 16
    Dernier message: 20/11/2003, 17h36

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