Ich hab mir jetzt mal ein SUSE 7.0 installiert und bekomme beim kompiliern desselben Programms folgende Fehlermeldung:
<------------------> /tmp/ccfoAjCW.o: In function `main': /tmp/ccfoAjCW.o(.text+0x1d): undefined reference to `cout' /tmp/ccfoAjCW.o(.text+0x22): undefined reference to `ostream::operator<<(char const *)' /tmp/ccfoAjCW.o(.text+0x31): undefined reference to `cin' /tmp/ccfoAjCW.o(.text+0x36): undefined reference to `istream::operator>>(int &)'/tmp/ccfoAjCW.o(.text+0x46): undefined reference to `cout' /tmp/ccfoAjCW.o(.text+0x4b): undefined reference to `ostream::operator<<(char const *)' /tmp/ccfoAjCW.o(.text+0x5a): undefined reference to `cin' /tmp/ccfoAjCW.o(.text+0x5f): undefined reference to `istream::operator>>(int &)'/tmp/ccfoAjCW.o(.text+0x7f): undefined reference to `cout' /tmp/ccfoAjCW.o(.text+0x84): undefined reference to `ostream::operator<<(char const *)' /tmp/ccfoAjCW.o(.text+0xa9): undefined reference to `cout' /tmp/ccfoAjCW.o(.text+0xae): undefined reference to `ostream::operator<<(char const *)' /tmp/ccfoAjCW.o(.text+0xd9): undefined reference to `cout' /tmp/ccfoAjCW.o(.text+0xde): undefined reference to `ostream::operator<<(char const *)' collect2: ld returned 1 exit status <---------------->
Ich bin langsam am verzweifeln... Wenn ich unter Linux nichtmal solche Grundoperationen durch den Compiler bekomme, irgendwie fühle ich mich dann zurück zu Windoof gezogen. Da klappt es mit dem Borland Compiler alles ohne Probleme.
Am Mittwoch, 20. Juni 2001 21:46 schrieben Sie:
On Wed, Jun 20, 2001 at 01:52:39PM -0400, Steffen Liebergeld wrote:
Am Dienstag, 19. Juni 2001 17:25 schrieben Sie:
offensichtlich ist die g++/libg++ Version auf deinem Rechner kaputt. Schau
Kmail scheinbar auch :).
Nö, ich hab zwei mails mit einer beantwortet und hab mir kein gedanken ums quoten gemacht und daher alles einfach kopiert.
[hier etwas falsch gequotetes :)]
mal auf den Webseiten von Mandrake nach, ob es ein aktuelleres Paket gibt.
Oder versuch mal #include<iostream> (ohne .h), das ist Standardkonform, könnte funktionieren, aber es wäre trotzdem noch ein Mandrake-Bug.
Also, bei der Gnu libstdc++ sind iostream, list etc. ziemliche dummy files. Wenn das was gebracht hätte, hätte Mandrake eigentlich eine eigene Standardlib herausgeben können :).
Was meinst du mit "dummy files"?
Das #include <iostream> funktioniert auch nicht, ich werde mich wohl oder übel nach neuen packeten umsehen müssen oer auf SuSE 7.2 warten *Andreas K. fragend*.
Kannst auch zum Beispiel unter http://freshmeat.net/projects/stlport schauen. Ich hab es zwar selber noch nicht genutzt, hab aber mal in einem Forum (ich glaube heise) einen positiven Kommentar darüber gelesen. Und Standardkonformität ist immer gut :).
Werd mal nachsehen.
Übrigens kannst du "!(a == b)" auch schreiben als "(a != b)". Ist kürzer und übersichtlicher.
;-) Ich bin noch in der Lernphase und bin froh wenn ich es überhaupt zum laufen kriege.
Übung macht den Meister. :)
Ich hoffe es!
Versuch mal, statt int die Klasse string zu benutzen. Wenn das Programm dann läuft, liegt es daran das die iostream-Klasse keine Integer-Werte für die Shift-Operatoren mag, ansonsten ist die Bibliothek wahrscheinlich broken. Es könnte evtl. eben daran liegen, daß du Integer verwendest, womit du auch bei der Stringmanipulation vorsichtig sein solltest, weil das manchmal ziemlich kryptische Fehler ergibt.
Ich habe es mal mit strings probiert, aber den selben Fehler erhalten.
Was folgt daraus? ;)
Dass der Fehler nicht nur bei Integern auftritt.
cu Steffen
Ulf