qmake makt nicht !



  • Hi !

    Hoffe mal,dass sich ein paar Qt-Profis in meinen Thread verirren. Ich hab folgendens Problem:

    Ich hab Debian und qt3-dev installiert. Einfache Programme kann ich per Hand bequem und einfach mit dem gcc kompilieren.

    Bspw. folgendes Proggie:

    #include <qapplication.h>
    #include <qpushbutton.h>
    
    #define null NULL
    #define true 1
    #define false 0
    
    int main(int argc, char** argv) {
      QApplication* qApp = new QApplication(argc, argv);
      QPushButton* qButt = new QPushButton(null,"Click me");
    
      qApp->setMainWidget(qButt);
      qButt->show();
    
      return qApp->exec();
    } //end programm
    

    Naja, wie man sieht ist das Prog ziemlich Banane. Mit dem gcc klappt alles wunderbar. Aber wenn ich qmake -project und anschliessend qmake und make aufrufe erhalte ich folgenden Fehler:

    tom@debian:~/eigene dateien/Programmieren/qt-kde Programmierung$ make
    g++ -c -pipe -Wall -W -O2  -DQT_NO_DEBUG -DQT_SHARED -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/share/qt3/include -o prog1.o prog1.cpp
    In file included from /usr/share/qt3/include/qobjectdefs.h:42,
                     from /usr/share/qt3/include/qwindowdefs.h:43,
                     from /usr/share/qt3/include/qwidget.h:42,
                     from /usr/share/qt3/include/qdesktopwidget.h:40,
                     from /usr/share/qt3/include/qapplication.h:42,
                     from prog1.cpp:2:
    /usr/share/qt3/include/qglobal.h:740:21: qconfig.h: No such file or directory
    /usr/share/qt3/include/qglobal.h:750:22: qmodules.h: No such file or directory
    make: *** [prog1.o] Error 1
    

    Jedenfalls sind die qt Bibs in /usr/include/qt3 installiert. Aber qmake erstellt irgendwie ein makefile, dass dem gcc erzählt es soll auf /usr/share/qt3/include zugreiffen, wenn ich die Ausgabe richtig interpretiere.

    Wieso macht qmake sowas ?? Weiss jemand wie qmake funktioniert und wieso es mir sowas ausspuckt. Muss ich noch irgendwas am System ändern ??

    mfg
    tom



  • Na schön, ich weiss jetzt was es war. Kurze Erklärung was los ist:

    Der Compiler bekommt in dem Makefile, welches von qmake erstellt wurde folgenden Paramenter mit übergeben -I /usr/share/qt3/mkspecs/default (siehe oben). Nun ist diese Datei default ein Link auf default -> linux-g++. Also der Hinweis für qmake das als Compiler der g++ auf Lin benutzt wird.
    Es existiert in /usr/share/qt3/mkspecs ein Verzeichnis namens linux-g++. In diesem Verzeichnis befindet sich ausserdem eine Datei, namens qmake.conf. In dieser Datei seht wiederum der Conf-Parameter:

    QMAKE_INCDIR_QT = /usr/include/qt3/

    Okay, den hab ich jetzt schon auf den richtigen Pfad angepasst. Dann geht's.

    😡 Das sieht mir mal wieder nach einer typischen Schlampenimplementation von den Debianfutzis aus. Die QT3-Dev files in /usr/include/qt3 gesteckt, wo sie natürlich, wie von TrollTech empfohlen, nicht reingehören, und dann die QT-DEV-Tools (enthalten qmake und moc) in /usr/share/qt3 installiert und die Confdatei falsch angepasst.
    Daraus folgt: wieder einmal einen User mehr in den Wahnsinn geschickt.

    Aber warum beschwer ich mich überhaupt ? Debian will doch nur die Welt verbessern und macht eben genauso wie Susi auch nur ihren eigenen DistriMist.

    mfg
    tom


Anmelden zum Antworten