[gelöst] Installation -> Hallo world Beispiel

Verschiedenes zu Qt
Antworten
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

[gelöst] Installation -> Hallo world Beispiel

Beitrag von Michael L. »

Hi, ich habe QT3 Installiert und alles hat auch wunderbar funtkioniert. Nun Wollte ich ads Hallo Beispiel testen und komme nur bis zum make. Starte ich make, bricht der Linker ab.

Meldung:
cannot find -lqt

Nun habe ich gegoogelt, gab auch haufen Treffer aber nichts Hlft. Nun 2 Fragen:

1. Kennt wer eine Lösung wie er die Dateien findet?
2.Wie heisst die Datei komplett? qt.lib? Ich habe viele Varianten von gt.* gt-*, ... geuscht. Aber so eine Datei schein es nicht zu geben

mfg Michael
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

-lqt ist unter Windows qt.lib und unter Linux libqt.so.

Wenn du keine dieser Dateien hast, ist Qt3 nicht vollständig installiert. Außerdem gibt es nämlich eine qt-mt für thread support.

Wie er die Datei findet?
-L/hier/verzeichnis -lqt

Erzähl uns doch welche Qt Version genau. Und welches Betriebssystem. Dann kann ich dir sicherlich noch besser helfen.
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

Beitrag von Michael L. »

Sorry habe ich nicht dran gedacht:

OS: Debian sarge
QT: 3.2.1

das Konfigurations-Skript habe ich mit: ./configure -thread ausgeführt

ich hoffe das waren die Infos die du brauchtest

PS: die Datei libgt.so.3,libgt.so.3.3,libgt.so.3.3.4 gibt es unter /usr/lib
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Jo, dann probiere ld -lqt wenn da ein fehler kommt ist /usr/lib nicht im LD_LIBARARY_PATH, oder cache ist nicht aktuell.

Die Ausgabe sollte etwa so aussehen wenn vorhanden:
ld: warning: cannot find entry symbol _start; not setting start address
und wenn nicht vorhanden so:
ld: cannot find -lqt

Ich habe auch Debian und bei mir heisst die Datei übrigens qt-mt

Also musst dann das Programm nochmal kompilieren, schon sollte es gehen.

Du hast das aber schon mit apt-get installiert, oder?
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

Beitrag von Michael L. »

Nein installiert habe ich es mittels einer Buch CD. Bei apt wusst ich nicht was ich alles brauche :( (da gibts ja zich qt pakete)

Also wenn ich $LD_LIBRARY_PATH mache steht jetzt /usr/lib mit drin.

PS: da war ein kleiner fehler. Die Datein sind:
libgt-mt.so.3,libgt-mt.so.3.3,libgt-mt.so.3.3.4

Ich habe in dem Makefile versucht -lqt durch -lgt-mt zu ersetzen aber auch das geht nicht
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

In der pro-Datei sollte ein 'CONFIG += thread' stehen. Da du Qt mit Thread-Spport gebaut hast, müssen deine Programme auch gegen qt-mt.lib gelinkt werden und nicht gegen qt.lib

Btw es heisst Qt, nicht Gt !
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

Beitrag von Michael L. »

Ok mit dem CONFIG das ahbe cih gemacht und er will jetzt auch tatsächlich qt-mt haben, aber auch das findet der Linker nicht.

Welches File will er da?
qt-mt.pc
libqt-mt.prl
lipqt-mt.so.3.3.4

Kann man sich ausgeben lassen wo er überall die libs sucht? Lasse ich mir $LD_LIBRARY_PATH ausgeben so sind die Pfade richtig gesetzt. Einaml das QT/lib Verzeichnis und dann /usr/lib

Auf jeden Fall thx für eure Hilfe ich weiß langsam nicht mehr weiter :(
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Er sucht libqt-mt.so (-l ist der Parameter, das lib devor und .so dahinter kommen immer hinzu) welcher ein Link auf libqt-mt.so.3 sein sollte welcher wiederrum auf libqt-mt.so.3.3.4 zeigt. Eigentlich sollte die Links per 'ldconfig' erzeugt werden. hast Du das evtl. vergessen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

Beitrag von Michael L. »

THX das war eine gute Idee :).

Also den Befehl kannte ich nicht und laut dem Buch musste man den auch nicht aufrufen. Aber deine Erklärung hat mir gezeigt das irgend wie vergesen wurde die SymLinks zu setzen. Es gibt immer nur Dateien ala libqt-mt.so.3 oder .3.3.4 aber nie eine die auf "so" endet. Nun habe ich alle Links die fehlten generiert (waren 4 die nicht gesetzt waren, X11,Xext, .. )

Das Hallo Beispiel geht jetzt, abwarten was noch kommt ^^.

Thx noch mal für die Mühe ^^

mfg und schönes Sonntag
Michael
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

Beitrag von Michael L. »

Grummel

Also unter root geht es unter einem normalen Benutzer ersetzt er das QTDIR nicht im Makefile. Das wird immer mit dem leeren String ersetzt aber in der Konsole (unter dem nutzer) ist die Variable nicht leer.

Wie geht denn sowas? Ich habe keine Lust immer manuel die Einträge zu aktuallisieren

<edit> ok ich kann in dem QTDesigner den include manuel einfügen, aber das wahre ist das nciht. Aber was viel schlimmer ist, QT scheint probleme mit den Rechten zu haben. Ein Fenster untr Root sieht anders aus als unter nem normalen Benutzer, Da sieht man dann nur das Hauptfenster, nicht aber die typischen icons für schliessen, minimieren etc.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Es wäre vielleicht relativ gut, wenn du dir einmal die Qt Libs aus dem Debian Tree zu deinem Debian installierst.
Michael L.
Beiträge: 10
Registriert: 29. April 2005 20:27

Beitrag von Michael L. »

Ja habe ich jetzt auch gemacht,(wollt ich erst nicht weil ich dachte das kolidiert mit der Buch Version) läuft besser und das er den Dialog so komsich anzeigt liegt an meinem Windowsmanager, der macht wohl borderless als Defaulteinstellung bei neuen Programmen. Mal sehen wie ich das weg bekomme.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

WFlags und div. Optionen wie showMaximised gehen nicht mit allen WMs richtig, und teilsweise sind welche auch Linux und andere Windows spezifisch.
Antworten