Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [C++/Qt]Errore compilazione

    ave populus
    sto tentando di compilare un esempio di C++/Qt

    il listato è questo:
    Codice PHP:
    #include <qapplication.h>
    #include <qlabel.h>

    int main (int argccharargv[])
    {
        
    QApplication ciao(argc,argv);
        
    QLabelscritta = new QLabel("Ciao a tutti!",0);
        
    scritta->resize(120,30);
        
    ciao.setMainWidget(scritta);
        
    scritta->show();
        return 
    ciao.exec();

    ma compilandolo con
    g++ -o D:\main.exe D:\main.cpp -I%QTDIR%\include -L%QTDIR%\lib -lqt
    (come visto sul sito della guida)
    dà quest'errore:
    d:/MinGWStudio/Progetti/Graphic_organizer/main.cpp: In function `int main(int,
    char**)':
    d:/MinGWStudio/Progetti/Graphic_organizer/main.cpp:9: error: `setMainWidget'
    undeclared (first use this function)
    d:/MinGWStudio/Progetti/Graphic_organizer/main.cpp:9: error: (Each undeclared
    identifier is reported only once for each function it appears in.)
    d:/MinGWStudio/Progetti/Graphic_organizer/main.cpp:12:2: warning: no newline at
    end of file


    INFO:
    sono su win2000
    utilizzo il compilatore MinGW (gcc vers 3.3.1)
    Qt è ovviamente installato (versione 4.0.0)
    la var di ambiente QTDIR punta a: D:\Qt\4.0.0 (giustamente)

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    g++ -o D:\main.exe D:\main.cpp -I%QTDIR%\include -L%QTDIR%\lib -lqt

    ma %QTDIR% è definita da qualche parte? Prova a scrivere il comando cosi:

    g++ -o D:\main.exe D:\main.cpp -I <percorso della cartella delle qt>\include -L <percorso della cartella delle qt>\lib -lqt

    dove <percorso della cartella delle qt> è la cartella delle qt che ha una sottocartella include.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da anx721
    g++ -o D:\main.exe D:\main.cpp -I%QTDIR%\include -L%QTDIR%\lib -lqt

    ma %QTDIR% è definita da qualche parte? Prova a scrivere il comando cosi:

    g++ -o D:\main.exe D:\main.cpp -I <percorso della cartella delle qt>\include -L <percorso della cartella delle qt>\lib -lqt

    dove <percorso della cartella delle qt> è la cartella delle qt che ha una sottocartella include.
    QTDIR è proprio una variabile di sistema che contiene il percorso della cartella delle Qt

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Le cose sono due:

    o usi una versione di qt che non possiede la funzione setMainWidget, o questa è definita in un header file che non includi, o il compilatore non trova questo header file (in questo caso mi pare che ti dice direttamente che no lo trova.)

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da anx721
    Le cose sono due:

    o usi una versione di qt che non possiede la funzione setMainWidget,
    uso la versione 4.0.0
    o questa è definita in un header file che non includi,
    non credo dato che l'esempio l'ho copiato da una guida online
    o il compilatore non trova questo header file (in questo caso mi pare che ti dice direttamente che no lo trova.)
    difatti all'inizio che avevo sbagliato a mettere i percorsi degli include, mi dava errore dato che non trovava gli header

  6. #6
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    ora ho commentato quasi tutto lasciando solo le istruzioni di include
    #include <QApplication>
    #include <QPushButton>
    ma dà il famoso errore di header non trovati
    ho provato anche a cambiare le istruzioni di include così:
    #include <Qt\QApplication>
    #include <Qt\QPushButton>
    visto che i due file sono sotto Include/Qt/
    ma ancora nulla

    compilo sempre così:
    g++ -o d:\main d:\main -I%QTDIR%\Include -L%QTDIR%\Lib -lqt

  7. #7
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    ho messo così gli include:
    codice:
    #include <Qt\QApplication.h>
    #include <Qt\QPushButton.h>
    ora li trova i due include, ma in compenso dà quest'altro errore:
    ./../lib/gcc-lib/mingw32/3.3.1/../../../libmingw32.a(main.o)
    (.text+0x106):main.c: undefined reference to `WinMain@16'

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Se hai creato il tuo progetto come una Windows Application ricrealo come console application

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.