Anfängerproblem?

Grüß Euch!

Ich möcht’ mir C+±Kenntnisse im Selbststudium aneignen,
und will auch ein bißchen Grafik reinbringen.
Es besteht aber scheinbar ein Problem beim Kompilieren.
Ich hab den gcc (g++)-Compiler auf Linux laufen.
Zum Beispiel bei folgendem Befehl:

g++ -I /usr/lib/qt/include qhello.cpp -o qhello
(im Pfad nach -I liegen die Header-Files)

erhalt’ ich folgende Fehlermeldungen:
/tmp/ccUUAF1P.o: In function main': /tmp/ccUUAF1P.o(.text+0x1a): undefined reference to QApplication::QApplication(int &, char **)’
/tmp/ccUUAF1P.o(.text+0x32): undefined reference to QPushButton::QPushButton(char const \*, QWidget \*, char const \*)' /tmp/ccUUAF1P.o(.text+0x48): undefined reference to QPushButton::resize(int, int)’
/tmp/ccUUAF1P.o(.text+0x5e): undefined reference to QApplication::setMainWidget(QWidget \*)' /tmp/ccUUAF1P.o(.text+0x70): undefined reference to QWidget::show(void)’
/tmp/ccUUAF1P.o(.text+0x7f): undefined reference to QApplication::exec(void)' /tmp/ccUUAF1P.o(.text+0x95): undefined reference to QPushButton::~QPushButton(void)’
/tmp/ccUUAF1P.o(.text+0xa6): undefined reference to QApplication::~QApplication(void)' /tmp/ccUUAF1P.o(.text+0xdd): undefined reference to QPushButton::~QPushButton(void)’
/tmp/ccUUAF1P.o(.text+0xf0): undefined reference to QApplication::~QApplication(void)' /tmp/ccUUAF1P.o: In function QArrayT type_info function’:
/tmp/ccUUAF1P.o(.gnu.linkonce.t.__tft7QArrayT1Zc+0x10): undefined reference to QGArray type\_info function' /tmp/ccUUAF1P.o(.gnu.linkonce.t.\_\_tft7QArrayT1Zc+0x1a): undefined reference to QGArray type_info node’
/tmp/ccUUAF1P.o: In function QSenderObject type\_info function': /tmp/ccUUAF1P.o(.gnu.linkonce.t.\_\_tf13QSenderObject+0x10): undefined reference to QObject type_info function’
/tmp/ccUUAF1P.o(.gnu.linkonce.t.__tf13QSenderObject+0x1a): undefined reference to `QObject type_info node’
collect2: ld returned 1 exit status

Das war der zugehörige Source-Code (aus einem Qt-Tutorial):

// Qt-Test

#include
#include

int main (int argc, char **argv)
{
QApplication a (argc, argv);

QPushButton hello („Hello, World!“);
hello.resize (100,30);

a.setMainWidget (&hello);
hello.show();
return a.exec();
}

Der Jammer ist nun der, daß sich eigentlich nichts außer den
Standardfunktionen (iostream.h, string.h, o. ä.) kompilieren
läßt.
Irgendwas muß da falsch laufen, ich weiß nur nicht was!!!
Ich appelliere an die C++/linux -Experten an euch, die
an den Fehlermeldungen erkennen, was da fehlt!

Danke im voraus, Robert.

Scheint ein linker-Fehler zu sein.
Vermutlich musst du noch irgendeine Library linken von QT, weiss aber nicht welche und was QT überhaupt ist :wink:

wenn du es rausfindest noch

-lqt oder sowas ind er Art als Parameter an g++ übergeben

Hallo Bruno,

also wen er das mit Hilfe deines Postings gebacken bekommt, dann fress ich n Besen.

So viel Aussagekraft hab ich selten in einem Beitrag hier gelesen … Respekt!

Aber ich will ja nicht so sein, kriegst trotzdem (k)ein Sternchen ;o)

Gruesse.

Kris.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 Like

So schlecht war das ja wohl auch wieder nicht.
Da wird doch irgendwo in der QT-Dokumentation was stehen über das Linken einer Library, und auf diese Spur hab ich ihn mal gebracht.
Tut mir leid, wenn ich so frech war hier zu antworten, man kann ihm natürlich auch gar nix antworten oder mit sinnvollen Kommentaren wie du weiterhelfen!

Hallo Bruno,

also wen er das mit Hilfe deines Postings gebacken bekommt,
dann fress ich n Besen.

So viel Aussagekraft hab ich selten in einem Beitrag hier
gelesen … Respekt!

Aber ich will ja nicht so sein, kriegst trotzdem (k)ein
Sternchen ;o)

Gruesse.

Kris.

lol, voll das Spammer-Kommentar! Also um mal meinen Senf dazuzugeben: Bevor man so ne dumme Klappe hat sollte man mal eine bessere Erklärung auf das Problem liefern!
Stänkerer sind hier wohl eher unwillkommen… gibt es nicht ein Brett „Spammer-Lamer“??? :wink: *G*

nix für Ungut, aber das musste ich loswerden :wink:

cya
WarWiz

Nabend,

also es lag nicht wirklich in meiner Absicht, deiner guten Willen zu kritisieren.

Ich musste lediglich schmunzeln, als ich deinen Beitrag zum ersten Mal las und habe auch dann die Ueberlegung, was dazu zu schreiben, verworfen.

Spaeter hab ich das Posting nochmal gelesen, und dann konnte ich mich einfach nicht zurueckhalten. Falls jemand sich davon angegriffen gefuehlt hat, dann tuts mir leid … ich dachte, Smileys waeren verstaendlich genug.

Zum anderen: es stimmt, ich kann zu dem gegebenen Problem auch keine gscheite Loesung beisteuern. Wenn ich das koennte, haette ich es auch gemacht.

Ich bedauer halt einfach nur, dass ich oftmals feststellen muss, dass einige Leute nur Postings schreiben, damit sie ueberhaupt was schreiben - und nicht immer, weil sie eine Loesung bzw. eine Meinung parat haben. Und da gibts - das muesst ihr zugeben - schon einige krasse Typen hier, die das so handhaben.

Ueber dein Posting musste ich lediglich schmunzeln … viel mehr noch, als ich nach meinem Reply mir deine Visitenkarte durchgelesen hab.

Nicht mehr und nicht weniger.

Kris.
die mal die Schlipse der Herren kurzer macht, damitse nicht mehr drauftritt…

also es lag nicht wirklich in meiner Absicht, deiner guten
Willen zu kritisieren.

Dann is ja gut :smile:

Spaeter hab ich das Posting nochmal gelesen, und dann konnte
ich mich einfach nicht zurueckhalten. Falls jemand sich davon
angegriffen gefuehlt hat, dann tuts mir leid … ich dachte,
Smileys waeren verstaendlich genug.

Naja, das mit meiner Antwort war auch nicht wirklich so hart gemeint, aber man muss ja kontern wenn man herausgefordert wird :wink:

Ich bedauer halt einfach nur, dass ich oftmals feststellen
muss, dass einige Leute nur Postings schreiben, damit sie
ueberhaupt was schreiben - und nicht immer, weil sie eine
Loesung bzw. eine Meinung parat haben. Und da gibts - das
muesst ihr zugeben - schon einige krasse Typen hier, die das
so handhaben.

Da hast du schon recht. Aber so ganz sinnlos war die Antwort ja wohl auch nicht (sorry ich weiss echt nicht was QT ist, bestimmt irgendne Linux-Grafik-Sache oder so). Und lieber nen kleinen Anhaltspunkt geben als dass da gar keine Antwort kommt.

Ueber dein Posting musste ich lediglich schmunzeln … viel
mehr noch, als ich nach meinem Reply mir deine Visitenkarte
durchgelesen hab.

Hm wieso musst du da schmunzeln? :wink: Behaupte ich irgendwo was falsches? Von QT-Profi steht da nix :wink: Ich bin eher der Experte in den Web-Skriptsprachen und hab eben auch ein wenig Erfahrung in C++ und Java gesammelt in meiner Firma. Aber da entwickeln wir rein auf Windows NT und dass ich mit Linux einwenig auskenne hat rein mit meinen Internetsachen zu tun :wink:

Einen Wettstreit gegen dich trete ich jederzeit an *g*

Ciaoi
Bruno

Grüß Euch!

Ich möcht’ mir C+±Kenntnisse im Selbststudium aneignen,
und will auch ein bißchen Grafik reinbringen.
Es besteht aber scheinbar ein Problem beim Kompilieren.
Ich hab den gcc (g++)-Compiler auf Linux laufen.
Zum Beispiel bei folgendem Befehl:

g++ -I /usr/lib/qt/include qhello.cpp -o qhello
(im Pfad nach -I liegen die Header-Files)

Hi! Ich habe das zwar wegen momentanen mangels an Linux nicht getestet, aber nachgelesen :wink:

Versuch mal das:
g++ - qhello qhello.cpp -I/usr/lib/qt/include -L/usr/lib/qt/lib -lqt

HTH

Naja, das mit meiner Antwort war auch nicht wirklich so hart
gemeint, aber man muss ja kontern wenn man herausgefordert
wird :wink:

… hab ich auch nicht wirklich so aufgefasst … aber der deines Vorredners war schon harsch.

Da hast du schon recht. Aber so ganz sinnlos war die Antwort
ja wohl auch nicht (sorry ich weiss echt nicht was QT ist,
bestimmt irgendne Linux-Grafik-Sache oder so). Und lieber nen
kleinen Anhaltspunkt geben als dass da gar keine Antwort
kommt.
Hm wieso musst du da schmunzeln? :wink: Behaupte ich irgendwo was
falsches? Von QT-Profi steht da nix :wink: Ich bin eher der
Experte in den Web-Skriptsprachen und hab eben auch ein wenig
Erfahrung in C++ und Java gesammelt in meiner Firma. Aber da
entwickeln wir rein auf Windows NT und dass ich mit Linux
einwenig auskenne hat rein mit meinen Internetsachen zu tun :wink:

… ist ja auch alles gar kein Problem. Schmunzeln musste ich nur bei so Aussagen wie: „son QT … was das ist weiss ich aber auch nicht … und dann noch […] oder sowas …“
Also ich haette damit nichts anfangen koennen … schon gar nicht, wenn ich mit einem Subject: „Anfaengerproblem?“ poste …

Einen Wettstreit gegen dich trete ich jederzeit an *g*

ach bitte … das brauchts nun wirklich nicht :o)

Kris.
die eigentlich doch ganz neugierig ist, was mit „Wettstreit“ gemeint ist … ;o)

Kris.
die eigentlich doch ganz neugierig ist, was mit „Wettstreit“
gemeint ist … ;o)

Keine Ahnung :wink: LOL
ich bin eben der Competition-Bru *g*
vergiss es einfach

Ciao
Bruno

Versuch mal das:
g++ - qhello qhello.cpp -I/usr/lib/qt/include
-L/usr/lib/qt/lib -lqt

Oooops, da fehlt ein ‚o‘, also:
g++ -o qhello qhello.cpp -I/usr/lib/qt/include -L/usr/lib/qt/lib -lqt

Volltreffer!
Hallo!

Oooops, da fehlt ein ‚o‘, also:
g++ -o qhello qhello.cpp -I/usr/lib/qt/include
-L/usr/lib/qt/lib -lqt

Ich bin schon mit Hilfe Deines ersten Tips zum gewünschten
Ergebnis gekommen - ich bin entzückt!!

Bedanke mich - Bis bald, Robert.