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

Qt Discussion :

Linker Qt et ogre


Sujet :

Qt

  1. #1
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut Linker Qt et ogre
    J'ai testé de le tuto de irmaten pour intégrer ogre a Qt malheuresment je n'arrive pas a linker Ogre et Qt , j'ai vu que sur le forum le sujet avait déja était évoqué http://www.developpez.net/forums/d64...-6-qt-4-4-3-a/.

    J'ai rajouté le code dans le .pro


    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
    TEMPLATE = app
    CONFIG += console
    TARGET = qt_ogre
    DEPENDPATH += .
    INCLUDEPATH += . C:\OgreSDK\include
     
    win32 {
    LIBS += -LC:\OgreSDK\bin\debug -LC:\OgreSDK\bin\release
    }
     
    CONFIG(debug, debug|release) {
    LIBS += -lOgreMain_d
    }
    CONFIG(release, debug|release) {
    LIBS += -lOgreMain
    }
    Quand j'ai téléchargé la version de ogre3D j'ai bien fien attention de prendre celle pour le compilateur MinGw.

    J'utilise la derniere version de Qt sous windows.

    Le problème est que Qt ne reconnais pas ogre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:/Qt/2009.03/qt/monAppli/debug/../ogre.h:24: error: `Ogre' has not been declared
    Merci.

  2. #2
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Tu es sûr de cette ligne ? :
    INCLUDEPATH += . C:\OgreSDK\include

    Tes headers contiennent bien les includes nécessaires ?

    Tu as essayé de mettre le chemin entre " " ou d'utiliser les \\ ?
    Un clavier Azerty en vaut deux.

  3. #3
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    Oui j'ai essayé de mettre le chemin entre " " le dossier include est bien présent a l'adresse installé.

    Voici le .pro et le .h

    le .pro
    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
     
    TEMPLATE = app
    CONFIG += console
    TARGET = qt_ogre
    DEPENDPATH += .
    INCLUDEPATH += ". C:\OgreSDK\include"
     
    win32 {
    LIBS += -LC:\OgreSDK\bin\debug -LC:\OgreSDK\bin\release
    }
     
    CONFIG(debug, debug|release) {
    LIBS += -lOgreMain_d
    }
    CONFIG(release, debug|release) {
    LIBS += -lOgreMain
    }
    # Input
    HEADERS += testInt.h \
        testOgre.h
    FORMS += mainwindow.ui
    SOURCES += main.cpp \
        testInt.cpp
    testOgre.h

    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
     
    #include <QWidget>
    #include <Ogre.h>
    class OgreWidget : public QWidget
    {
        Q_OBJECT
     
    public:
        OgreWidget(QWidget *parent = 0);
        ~OgreWidget();
     
    public slots:
        void setBackgroundColour(QColor c);
     
    protected:
        virtual void paintEvent(QPaintEvent *e);
        virtual void resizeEvent(QResizeEvent *e);
        virtual void showEvent(QShowEvent *e);
     
    private:
        void initOgreSystem();
     
    private:
        Ogre::Root         *ogreRoot;
        Ogre::SceneManager *ogreSceneManager;
        Ogre::RenderWindow *ogreRenderWindow;
        Ogre::Viewport     *ogreViewport;
        Ogre::Camera       *ogreCamera;
    };
    Merci

  4. #4
    Membre averti
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Points : 333
    Points
    333
    Par défaut
    Où est ce fichier : C:/Qt/2009.03/qt/monAppli/debug/../ogre.h:24 ?

    Essaie :
    INCLUDEPATH += .
    INCLUDEPATH += "C:\OgreSDK\include"
    à la place de :
    INCLUDEPATH += ". C:\OgreSDK\include"
    Un clavier Azerty en vaut deux.

  5. #5
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    Merci pour cette réponse je viens d'essayer mais sa ne marche pas. Ca ne change rien, le fichier ogre.h est dans C:\OgreSDK\include.

    De plus je ne comprend pas je pense avoir réussi a utiliser ogre avec codeblock qui utilise pourtant le même compilateur (MinGw) que Qt.

    Personne a une idée que j'en ai marre de galérer.
    Merci.

  6. #6
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    Donc voila ou j'en suis j'ai modifier le fichier .pro
    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
     
    TEMPLATE = app
    TARGET = 
    DEPENDPATH += .
    INCLUDEPATH += C:\OgreSDK\include
    INCLUDEPATH += C:\OgreSDK\samples\include
    LIBS += -LC:\OgreSDK\lib \
        -LC:\OgreSDK\bin\debug \
        -lOgreMain_d \
        -lOIS_d
     
    # Input
    HEADERS += testInt.h \
        ogree.h
    FORMS += mainwindow.ui
    SOURCES += main.cpp \
        testInt.cpp
    Maintenant je n'ai plus qu'une seule erreur et je ne sais pas du tout a quoi elle est du
    je ne connais pas non plus sa signification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [/C:-1: error: collect2: ld returned 1 exit status
    Et un warning:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:/Qt/2009.03/qt/monAppli/debug/moc_ogree.cpp:66: undefined reference to `OgreWidget::setBackgroundColour(QColor)'

    Merci

    Maintenant j'ai rajouté dans le main.

    Et tous compile et quand le programme se lance il se ferme dessuite et la console m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Qt\2009.03\qt\Nouveau dossier\debug\qt_ogre.exe exited with code -1073741515
    Et je ne sais pas du tout ce que sa veut dire. Pourtant ce coup ci j'ai essayer en téléchargeant la source de irmaten et en ne changeant que le chemin de ogre dans le .pro. Et je n'ai aucune erreur ni aucun warning.

    Merci.

  7. #7
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    J'ai tester un autre tuto, j'ai essayer de l'adapter a Qt.
    Bref voici mon code

    testOgre.h

    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
     
    #include "Ogre.h"
    #include "ExampleApplication.h"
     
    class YeahApplication : public ExampleApplication
    // La classe derive de ExampleApplication
    // Qui regroupe des fonctionnalités de base
    {
    public:
        void createScene(void)
        {
            mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox");
     
        }
    };
    main.cpp

    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
     
    #include "testInt.h"
    #include "testOgre.h"
    #include <QApplication>
    #define WIN32_LEAN_AND_MEAN
    #include "windows.h"
    INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
    {
          YeahApplication app;
            app.createScene();
            app.go();
     
     
    }
     
    int main (int argc, char ** argv)
    {
     
     
            QApplication monApplication(argc,argv);
            helloworldIntelligente maFenetrePrincipale;
           // maFenetrePrincipale.setGeometry(maFenetrePrincipale.autoAjuste());
            maFenetrePrincipale.show();
            return monApplication.exec();
     
     
     
     
    }

    Voila toujours la même chose sa compile sans problème mais quand le programme se lance.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Qt\2009.03\qt\monAppli\debug\monAppli.exe exited with code -1073741515
    Je ne comprend pas du tout pourquoi sa fait sa j'ai pourtant suivis le 2 ème tuto a la lettre si vous pouviez m'aider sa serai sympa.
    Merci.

  8. #8
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    Le problème est en fait qui me manque des librairies les llibrairies cegui apparament, car il ne trouve pas la librairie OgreGUIRenderer. Quand jai installer ogre sur vc++ 2008 je me suis rendu compte qu'il y a avait plein de librairie ogreSDk/lib qui n'était pas dans la version minGw je ne sais pas pourquoi.

  9. #9
    Membre régulier Avatar de Attrox
    Profil pro
    Concepteur
    Inscrit en
    Mars 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Concepteur

    Informations forums :
    Inscription : Mars 2009
    Messages : 119
    Points : 112
    Points
    112
    Par défaut
    Pour résoudre le problème il faut compiler CEGUI et ces librairies puis les rajouter dans les laibrairies de OGRE car imatden dans son tuto utilise a mon avis une version de Qt compiler avec visual studio ou visula c++ et non avec minGw.

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

Discussions similaires

  1. Linker une appli en C++Builder 6, sous Window
    Par toni dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/12/2004, 09h04
  2. [Kylix] probleme (LINKER ERROR)
    Par subzero82 dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2004, 19h28
  3. [kdevelop]linker les lib openGL sous kdevelop
    Par bafman dans le forum OpenGL
    Réponses: 6
    Dernier message: 16/12/2003, 08h36
  4. [Debutant] Problème du linker [Dev-c++4]
    Par Macdir dans le forum Dev-C++
    Réponses: 3
    Dernier message: 30/05/2003, 20h50
  5. ActiveX : linker en statique ?
    Par tut dans le forum MFC
    Réponses: 8
    Dernier message: 07/11/2002, 10h24

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