Re: linux gibt mysteryöse Fehlermeldung bei C++ Programm aus
Danke, das war die benötigte Antwort. Jetzt funktionierts problemlos. Gruß, Christian Am Dienstag, 13. August 2002 15:56 schrieb Stefan Hundhammer:
On Dienstag, 13. August 2002 15:52, Christian Wunderlich wrote:
soweit so schlecht. Als Antwort bekomme ich
/tmp/ccXqoLdT.o: In function 'main': /tmp/ccXqoLdT.o(.text+0xf): undefined reference to 'cout' /tmp/ccXqoLdT.o(.text+0x14): undefined reference to 'ostream::operator<<(char const *)'
Jetzt meine Frage. Was heisst das und was kann ich da machen?
Der Linker sagt Dir damit, daß Du etwas verwendest, was Du nicht dazulinkst. Mit genau welchem Kommando compilierst und linkst Du das denn?
Du mußt natürlich die C++ -Standard-Libs auch dazulinken, etwa so:
gcc -o hello hello.cc -lg++
Vermutlich ist die Sache ganz einfach aber ich habe einen halben Tag damit verbracht unter Yast nach fehlenden Komponenten zu suchen und jetzt fällt mir nichts mehr ein.
CU
-------------------------------------------------------
Am Mit, 2002-08-14 um 11.35 schrieb Christian Wunderlich:
Danke, das war die benötigte Antwort. Jetzt funktionierts problemlos.
Meinst Du diese Antwort:
Du mußt natürlich die C++ -Standard-Libs auch dazulinken, etwa so:
gcc -o hello hello.cc -lg++
Ausser Du setzt einen wirklich steinzeitlichen GCC (gcc <= 2.7.3) ein, ist diese Antwort definitiv *falsch*! g++ -o hello hello.cc wäre richtig. Ralf
On Mittwoch, 14. August 2002 12:50, Ralf Corsepius wrote:
Am Mit, 2002-08-14 um 11.35 schrieb Christian Wunderlich:
Danke, das war die benötigte Antwort. Jetzt funktionierts problemlos.
Meinst Du diese Antwort:
Du mußt natürlich die C++ -Standard-Libs auch dazulinken, etwa so:
gcc -o hello hello.cc -lg++
Ausser Du setzt einen wirklich steinzeitlichen GCC (gcc <= 2.7.3) ein, ist diese Antwort definitiv *falsch*!
g++ -o hello hello.cc wäre richtig.
Hast ja Recht. Normalerweise tut man das ja sowieso nicht von Hand, sondern
per "Makefile", das dann normalerweise aus "Makefile.in" von einem
"configure" -Script generiert wird, das von "autoconf" und "automake"
generiert wird.
CU
--
Stefan Hundhammer
Am Mittwoch, 14. August 2002 13:06 schrieb Stefan Hundhammer: <snip>
Hast ja Recht. Normalerweise tut man das ja sowieso nicht von Hand, sondern per "Makefile", das dann normalerweise aus "Makefile.in" von einem "configure" -Script generiert wird, das von "autoconf" und "automake" generiert wird.
Um es mal so zu sagen: Häh? Ist das babylonisch? Also die Version mit "gcc -o hello hello.cc -lg++" hat funktioniert. Die mit g++ muss ich noch mal versuchen. Aber im Grunde reicht mir das so ja schon. Jetzt kann ich mich in Ruhe durch das Buch arbeiten. Danke euch. Christian
Hi, On Wed, 14 Aug 2002, Christian Wunderlich wrote:
Ist das babylonisch? Also die Version mit "gcc -o hello hello.cc -lg++" hat funktioniert. Die mit g++ muss ich noch mal versuchen. Aber im Grunde reicht mir das so ja schon.
Scheisse, nein. Praege dir nichts falsches ein. Das -lg++ funktioniert ist in Wirklichkeit sogar ziemlich schlimm (es waere -lstdc++, was noch erwarteterweise funktionieren wuerde), da libg++.so etwas so altes ist (kommt aus gcc 2.7.2 Zeiten), dass Programme, die mit 2.95.x uebersetzt sind, aber gegen libg++ linken, mit grosser Wahrscheinlichkeit _nicht_ funktionieren werden, selbst wenn das linken klappte (was auch eher ein Zufall ist). Du willst wirklich g++ zum Linken verwenden, nix anderes. Vergiss einfach die ganzen Libraries wieder, und nimm g++. Ciao, Micha.
Am Mittwoch, 14. August 2002 16:27 schrieb Michael Matz:
Hi,
On Wed, 14 Aug 2002, Christian Wunderlich wrote:
Ist das babylonisch? Also die Version mit "gcc -o hello hello.cc -lg++" hat funktioniert. Die mit g++ muss ich noch mal versuchen. Aber im Grunde reicht mir das so ja schon.
Scheisse, nein. Praege dir nichts falsches ein. Das -lg++ funktioniert ist in Wirklichkeit sogar ziemlich schlimm (es waere -lstdc++, was noch erwarteterweise funktionieren wuerde), da libg++.so etwas so altes ist (kommt aus gcc 2.7.2 Zeiten), dass Programme, die mit 2.95.x uebersetzt sind, aber gegen libg++ linken, mit grosser Wahrscheinlichkeit _nicht_ funktionieren werden, selbst wenn das linken klappte (was auch eher ein Zufall ist).
Du willst wirklich g++ zum Linken verwenden, nix anderes. Vergiss einfach die ganzen Libraries wieder, und nimm g++.
Grade mal ausprobiert. Funktioniert auch. Dann mache ich es in Zukunft so. Danke. Christian
participants (4)
-
Christian Wunderlich
-
Michael Matz
-
Ralf Corsepius
-
Stefan Hundhammer