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

Code::Blocks Discussion :

CodeBlocks: QApplication: No such file


Sujet :

Code::Blocks

  1. #1
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut CodeBlocks: QApplication: No such file
    Bonjour,

    J'essaye de compiler ce petit bout de code pris du tuto 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <QApplication>
    #include <QPushButton>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QPushButton hello("Hello world!");
        hello.resize(100, 30);
     
        hello.show();
        return app.exec();
    }
    Ca marche parfaitement en mode console (qmake -project qmake et make)

    Mais dans CodeBlocks cela me donne:
    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
     
    -------------- Build: default in QT Application ---------------
     
    Running target pre-build steps
    C:\Qt\4.3.3\bin\qt-prebuild.exe
    qt-prebuild : running
    qt-prebuild : scan started
    qt-prebuild : scan completed
    Compiling: main.cpp
    E:\Documents\Programmes\Qt\main.cpp:1:24: QApplication: No such file or directory
    E:\Documents\Programmes\Qt\main.cpp:2:23: QPushButton: No such file or directory
    E:\Documents\Programmes\Qt\main.cpp: In function `int main(int, char**)':
    E:\Documents\Programmes\Qt\main.cpp:6: error: `QApplication' undeclared (first use this function)
    E:\Documents\Programmes\Qt\main.cpp:6: error: (Each undeclared identifier is reported only once for each function it appears in.)
    E:\Documents\Programmes\Qt\main.cpp:6: error: expected `;' before "app"
    E:\Documents\Programmes\Qt\main.cpp:8: error: `QPushButton' undeclared (first use this function)
    E:\Documents\Programmes\Qt\main.cpp:8: error: expected `;' before "hello"
    E:\Documents\Programmes\Qt\main.cpp:9: error: `hello' undeclared (first use this function)
    E:\Documents\Programmes\Qt\main.cpp:12: error: `app' undeclared (first use this function)
    Process terminated with status 1 (0 minutes, 1 seconds)
    9 errors, 0 warnings
    Sachant que j'ai bien ajouté les dossiers où se situent les entêtes dans mon projet:
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <CodeBlocks_project_file>
    	<FileVersion major="1" minor="6" />
    	<Project>
    		<Option title="QT Application" />
    		<Option pch_mode="0" />
    		<Option compiler="gcc" />
    		<Build>
    			<Target title="default">
    				<Option output="qt.exe" prefix_auto="0" extension_auto="0" />
    				<Option type="0" />
    				<Option compiler="gcc" />
    				<Compiler>
    					<Add directory="$(QT_DIR)\include" />
    					<Add directory="$(QT_DIR)\include\Qt" />
    					<Add directory="$(QT_DIR)\include\Qt\ActiveQt" />
    					<Add directory="$(QT_DIR)\include\Qt\Qt3Support" />
    					<Add directory="$(QT_DIR)\include\Qt\QtAssistant" />
    					<Add directory="$(QT_DIR)\include\Qt\QtCore" />
    					<Add directory="$(QT_DIR)\include\Qt\QtDBus" />
    					<Add directory="$(QT_DIR)\include\Qt\QtDesigner" />
    					<Add directory="$(QT_DIR)\include\Qt\QtGui" />
    					<Add directory="$(QT_DIR)\include\Qt\QtNetwork" />
    					<Add directory="$(QT_DIR)\include\Qt\QtOpenGL" />
    					<Add directory="$(QT_DIR)\include\Qt\QtScript" />
    					<Add directory="$(QT_DIR)\include\Qt\QtSql" />
    					<Add directory="$(QT_DIR)\include\Qt\QtSvg" />
    					<Add directory="$(QT_DIR)\include\Qt\QtTest" />
    					<Add directory="$(QT_DIR)\include\Qt\QtUiTools" />
    					<Add directory="$(QT_DIR)\include\Qt\QtXml" />
    				</Compiler>
    				<Linker>
    					<Add library="$(QT_DIR)\lib\libQt3Support4.a" />
    					<Add library="$(QT_DIR)\lib\libQtAssistantClient4.a" />
    					<Add library="$(QT_DIR)\lib\libQtCore4.a" />
    					<Add library="$(QT_DIR)\lib\libQtDesigner4.a" />
    					<Add library="$(QT_DIR)\lib\libQtDesignerComponents4.a" />
    					<Add library="$(QT_DIR)\lib\libQtGui4.a" />
    					<Add library="$(QT_DIR)\lib\libqtmain.a" />
    					<Add library="$(QT_DIR)\lib\libQtNetwork4.a" />
    					<Add library="$(QT_DIR)\lib\libQtOpenGl4.a" />
    					<Add library="$(QT_DIR)\lib\libQtSql4.a" />
    					<Add library="$(QT_DIR)\lib\libQtXml4.a" />
    					<Add directory="$(QT_DIR)\lib" />
    				</Linker>
    				<ExtraCommands>
    					<Add before="$(QT_DIR)\bin\qt-prebuild.exe" />
    					<Mode after="always" />
    				</ExtraCommands>
    				<Environment>
    					<Variable name="QT_DIR" value="C:\Qt\4.3.3" />
    				</Environment>
    			</Target>
    		</Build>
    		<VirtualTargets>
    			<Add alias="All" targets="default;" />
    		</VirtualTargets>
    		<Unit filename="main.cpp" />
    		<Extensions>
    			<code_completion />
    			<envvars />
    			<debugger />
    			<lib_finder disable_auto="1" />
    		</Extensions>
    	</Project>
    </CodeBlocks_project_file>
    Je comprends pas, par ex QApplication est bien dans C:\Qt\4.3.3\include\QtGui\ dossier que j'ai inclu! J'ai essayé d'inclure les dossiers en rajoutant "\" à la fin sans résultats.

    CodeBlocks (La nightly build 4830) sous XP.
    Qt dans C:\Qt\4.3.3 et la version de MinGW livrée avec Qt dans C:\MinGW.
    Variable d'environnement QTDIR = C:\Qt\4.3.3
    Dans le path: C:\Qt\4.3.3\bin
    Mon projet dans E:\Documents\Programmes\Qt\

    Ca marche avec qmake
    Ca marche si j'inclu qapplication.h au lieu de QApplication -> il trouve qapplication.h qui est dans le même dossier mais pas QApplication. Dois-je jeter mon ordi? (ou l'interface chaise clavier peut être)
    Edit: en fait il y a un autre qapplication.h dans C:\Qt\4.3.3\include\Qt

    Merci d'avance.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Bonjour.
    Est tu sure de ta variable d'environnement
    $(QT_DIR) ??

  3. #3
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    En fait dans CodeBlocks j'ai crée une variable d'environnement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Variable name="QT_DIR" value="C:\Qt\4.3.3" />
    C'est la même valeur que la variable d'environnement que celle de windows:

    Que veux-tu dire exactement en me demandant si je suis sûr de ma variable? La valeur me semble être la bonne à savoir le chemin de Qt sans "\" à la fin. Au niveau des erreurs que j'aurai pu faire c'est lorque je l'utilise dans mes includions de chemins d'entête. J'ai cherché les erreurs possibles. J'ai utilisé plusieurs formes $(QT_DIR), $QT_DIR... avec le "\" à la fin des $(QT_DIR)\include\xxx\ ou sans....

    Il trouve les les qapplication.h mais pas les QApplication.

    C'est étrange il me semble avoir fait les mêmes manips qu'une autre fois ou ça avait marché. Je vais tester avec une autre version de CodeBlocks c'est le seul truc qui change par rapport à cette fois où ça a marché.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Juste si tu été sur de sa valeur. La je sais pas ...
    Voici le template qt fourni avec code block
    <?xml version="1.0"?>
    <!DOCTYPE CodeBlocks_project_file>
    <CodeBlocks_project_file>
    <FileVersion major="1" minor="1"/>
    <Project>
    <Option title="QT Application"/>
    <Option makefile="Makefile"/>
    <Build>
    <Target title="default">
    <Option type="0"/>
    <Option parameters=""/>
    <Option includeInTargetAll="1"/>
    <Option projectCompilerOptionsRelation="3"/>
    <Option projectLinkerOptionsRelation="3"/>
    <Option projectIncludeDirsRelation="3"/>
    <Option projectLibDirsRelation="3"/>
    <Compiler>
    <Add directory="$QTDIR/include"/>
    <Add directory="$QTDIR/include/Qt"/>
    <Add directory="$QTDIR/include/Qt/ActiveQt"/>
    <Add directory="$QTDIR/include/Qt/Qt3Support"/>
    <Add directory="$QTDIR/include/Qt/QtAssistant"/>
    <Add directory="$QTDIR/include/Qt/QtCore"/>
    <Add directory="$QTDIR/include/Qt/QtDesigner"/>
    <Add directory="$QTDIR/include/Qt/QtGui"/>
    <Add directory="$QTDIR/include/Qt/QtMotif"/>
    <Add directory="$QTDIR/include/Qt/QtNetwork"/>
    <Add directory="$QTDIR/include/Qt/QtNsPlugin"/>
    <Add directory="$QTDIR/include/Qt/QtOpenGL"/>
    <Add directory="$QTDIR/include/Qt/QtSql"/>
    <Add directory="$QTDIR/include/Qt/QtXml"/>
    <Add option=""/>
    </Compiler>
    <Linker>
    <Add library="libQt3Support4.a"/>
    <Add library="libQtAssistantClient4.a"/>
    <Add library="libQtCore4.a"/>
    <Add library="libQtDesigner4.a"/>
    <Add library="libQtDesignerComponents4.a"/>
    <Add library="libQtGui4.a"/>
    <Add library="libqtmain.a"/>
    <Add library="libQtNetwork4.a"/>
    <Add library="libQtOpenGl4.a"/>
    <Add library="libQtSql4.a"/>
    <Add library="libQtXml4.a"/>
    <Add directory="$QTDIR/lib"/>
    <Add option=""/>
    </Linker>
    </Target>
    </Build>
    </Project>
    </CodeBlocks_project_file>

  5. #5
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Merci pour le déplacement. D'ailleurs ce template est largement dépassé, que ce soit le format (vieux format d'enregistrement) et les dossiers qui ne correspondent plus (pour certains) à ceux de Qt.

    J'ai essayé avec sinon.

  6. #6
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Etrange en ajoutant les sous dossiers des headers ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <QtGui\QApplication>
    #include <QtGui\QPushButton>
    au lieu de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <QApplication>
    #include <QPushButton>
    Donc le compilo a pris en compte: $(QT_DIR)\include\Qt\QtGui mais pas $(QT_DIR)\include\Qt\QtGui

    Edit: Illumination soudaine! Pour faire mon projet Qt sous CodeBlocks j'ai édité le template fourni sous ce dernier. Et j'ai bêtement copié collé "\include\Qt\QtGui" -> "Qt" n'as rien à faire là. Tu m'étonnes qu'il trouvait pas les headers. Ce template est vraiment obsolète, il n'y a pas eu de mise à jour depuis longtemps. Il manque le programme qt-prebuild.exe également.

    Les templates sont tous dépassés comme ça? D'ailleurs dans ce template la variable est utilisée sous la forme: $QTDIR (et pas $(QTDIR)) C'est pour indiquer à CodeBlocks que c'est la variable d'environnement de Windows et pas une de CodeBlocks?

    Sinon voilà un projet qui marche sur XP avec les répertoires à jour et le programme qt-prebuild.exe:

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <CodeBlocks_project_file>
    <FileVersion major="1" minor="6" />
    <Project>
    <Option title="QT Application" />
    <Option pch_mode="0" />
    <Option compiler="gcc" />
    <Build>
    <Target title="default">
    <Option output="qt.exe" prefix_auto="0" extension_auto="0" />
    <Option type="0" />
    <Option compiler="gcc" />
    <Compiler>
    <Add directory="$(QT_DIR)\include" />
    <Add directory="$(QT_DIR)\include\Qt" />
    <Add directory="$(QT_DIR)\include\ActiveQt" />
    <Add directory="$(QT_DIR)\include\Qt3Support" />
    <Add directory="$(QT_DIR)\include\QtAssistant" />
    <Add directory="$(QT_DIR)\include\QtCore" />
    <Add directory="$(QT_DIR)\include\QtDBus" />
    <Add directory="$(QT_DIR)\include\QtDesigner" />
    <Add directory="$(QT_DIR)\include\QtGui" />
    <Add directory="$(QT_DIR)\include\QtNetwork" />
    <Add directory="$(QT_DIR)\include\QtOpenGL" />
    <Add directory="$(QT_DIR)\include\QtScript" />
    <Add directory="$(QT_DIR)\include\QtSql" />
    <Add directory="$(QT_DIR)\include\QtSvg" />
    <Add directory="$(QT_DIR)\include\QtTest" />
    <Add directory="$(QT_DIR)\include\QtUiTools" />
    <Add directory="$(QT_DIR)\include\QtXml" />
    </Compiler>
    <Linker>
    <Add library="$(QT_DIR)\lib\libQt3Support4.a" />
    <Add library="$(QT_DIR)\lib\libQtAssistantClient4.a" />
    <Add library="$(QT_DIR)\lib\libQtCore4.a" />
    <Add library="$(QT_DIR)\lib\libQtDesigner4.a" />
    <Add library="$(QT_DIR)\lib\libQtDesignerComponents4.a" />
    <Add library="$(QT_DIR)\lib\libQtGui4.a" />
    <Add library="$(QT_DIR)\lib\libqtmain.a" />
    <Add library="$(QT_DIR)\lib\libQtNetwork4.a" />
    <Add library="$(QT_DIR)\lib\libQtOpenGl4.a" />
    <Add library="$(QT_DIR)\lib\libQtSql4.a" />
    <Add library="$(QT_DIR)\lib\libQtXml4.a" />
    <Add directory="$(QT_DIR)\lib" />
    </Linker>
    <ExtraCommands>
    <Add before="$(QT_DIR)\bin\qt-prebuild.exe" />
    <Mode after="always" />
    </ExtraCommands>
    <Environment>
    <Variable name="QT_DIR" value="C:\Qt\4.3.3" />
    </Environment>
    </Target>
    </Build>
    <VirtualTargets>
    <Add alias="All" targets="default;" />
    </VirtualTargets>
    <Unit filename="main.cpp" />
    <Extensions>
    <code_completion />
    <envvars />
    <debugger />
    <lib_finder disable_auto="1" />
    </Extensions>
    </Project>
    </CodeBlocks_project_file>
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip qt.zip (778 octets, 69 affichages)

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    c'est quoi qt-prebuild.exe ??

  8. #8
    Membre habitué
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Points : 166
    Points
    166
    Par défaut
    Il sert à générer les fichier moc_filename.cpp à partir des filename.cpp qui utilisent la macro Q_OBJECT.

    En fait quand on a des fichiers avec Q_OBJECT il faut:
    - Compiler une 1ère fois
    - Au linkage on voit apparaître les erreurs: undefined reference to `vtable for "filename"'
    - Rajouter les fichiers moc_filename.cpp (générés par qt-prebuild.exe) dans le projet CodeBlocks
    - Recompiler et ça marche!

    http://gilmosse.free.fr/qt-prebuid/qt-prebuild.exe

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

Discussions similaires

  1. CodeBlocks : No such file or directory
    Par papyroger dans le forum C++
    Réponses: 5
    Dernier message: 30/04/2015, 09h23
  2. QApplication : no such file or directory
    Par Glân von Brylân dans le forum Débuter
    Réponses: 6
    Dernier message: 08/07/2014, 20h43
  3. Réponses: 8
    Dernier message: 01/07/2013, 09h32
  4. Réponses: 3
    Dernier message: 16/01/2006, 18h24
  5. Réponses: 1
    Dernier message: 04/10/2005, 20h01

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