cpp qt linker fehler beim kompilieren



  • hallo, ich habe mir ein buch gekauft "kde und qt programmierung unter linux"
    und bekomme leider schon bei dem ersten beispiel quellcode
    beim kompilieren immer folgenden fehler:

    /usr/bin/ld: cannot find -lqt
    collect2: ld returned 1 exit status

    ich hab keine ahnung was der parameter -lqt bewirkt steht auch in dem buch nicht
    drin, auf jeden fall scheint der linker irgendwas zu vermissen,
    hat jemand ne idee was ich falsch mache?
    danke schonmal im voraus



  • Der parameter -lqt weist g++ an die library libqt beim linken zu verwenden.

    Kleiner tipp:

    Füge in der /etc/profile.local folgenden eintrag ein, falls er noch nicht vorhanden ist:

    export QTDIR=/pfad/zu7deiner/qt/installation

    anschließend die aktuelle sitzung beenden und neu einloggen.

    Dann überprüfst du die /etc/ld.so.conf, wenn in dieser datei kein eintrag zum lib verzeichnis deiner qt installation vorhanden ist, diesen einfügen.

    und den befehl ldconfig ausführen.

    wenn du jetzt mit qt eine anwendung schreibst, erstellst du eine datei anwendung.pro (für anwendung verwendest du den namen deiner anwendung) und fügst folgende zeilen in diese datei ein:

    HEADERS = Anwendung.h sämtliche header dateien die du selbst geschrieben hast und in deiner anwendung verwendest werden in dieser variablen gespeichert.

    SOURCES = main.cpp Anwendung.cpp sämtliche source dateien werden in dieser variablen gespeichert.

    TARGET = anwendung ist erforderlich für den fenster titel deines hauptfensters deiner anwendung

    anschließen führst du folgenden befehl aus:

    $QTDIR/bin/qmake

    dieser befehl erstellt aus der .pro datei ein makefile

    anschließend kannst du deine anwendung mit make kompilieren.



  • oh vielen dank 😉
    hatte das bereits alles gemacht mit $QTDIR setzen soweit stand auch alles
    in meinem buch, aber der befehl zum kompilieren aus dem buch hat nicht funktioniert, mit dem tipp von dir mit qmake ging alles einwandfrei 😉


Anmelden zum Antworten