string funzt nicht
-
Hallo Cppfreunde,
ich habe ein kleines Programm geschrieben und bekomme es nicht zum laufen.#include <string>
using namespace std;int main(void)
{
string str1, str2;str1="foo1"; str2="foo2";
return 0;
}
Nach allen Regeln der Kunst dürfte es doch da keine Probleme geben. Oder?
Ich arbeite auf einen Unix-System. Der Befehl uname -a ergiebt folgendes:SunOS is0171 5.6 Generic_105181-23 sun4u sparc SUNW,Ultra-4
Zum übersetzen gebe ich folgendes ein:
gcc foo.cpp -o foound bekomme dann:
Undefined first referenced
symbol in file
__length_error(char const ) /var/tmp/ccBcOGwB.o
ostream::operator<<(ostream &()(ostream &))/var/tmp/ccBcOGwB.o
endl(ostream &) /var/tmp/ccBcOGwB.o
cerr /var/tmp/ccBcOGwB.o
ostream::operator<<(char const/var/tmp/ccBcOGwB.o
string_char_traits<char>::copy(char *, char const *, unsigned int)/var/tmp/ccBcOGwB.o
string_char_traits<char>::length(char const *)/var/tmp/ccBcOGwB.o
string_char_traits<char>::move(char *, char const *, unsigned int)/var/tmp/ccBcOGwB.o
__out_of_range(char const/var/tmp/ccBcOGwB.o
ld: fatal: Symbol referencing errors. No output written to foo
collect2: ld returned 1 exit statusWer kann mir helfen?
Bis bald
foo
-
Kompiliere mal mit
g++ statt gcc
oder linke die libstdc++ dazu.
-
Vielleicht hilft dir das:
http://www.uni-koeln.de/rrzk/kurse/unterlagen/CPPKURS/HTML/gnu.htm
Ansonsten mal hier suchen:
http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q="gcc"+%2B".cpp"+&meta=lr%3Dlang_deCode-Hacker
-
Danke für die schnelle Hilfe. Komme jetzt öfter
g++ hat geholfen.
Was ist eigentlich der Unterschied zwischen g++ und gcc?
Die links habe ich noch nicht angeschaut, vielleicht steht dort ja was.
Bis bald
foo
-
Hallo,
gcc steht fuer gnu c compiler und ist ein C-Compiler
g++ ist der gnu C++ CompilerGruß Entyl Sa
-
Man könnte anstatt
int main()
doch eigentlich auch
void main()
verwenden oder?
-
Nein, das ist genau so falsch wie "mian" zu schreiben, nur akzeptieren es einige Compiler....
-
g++ ruft den GCC mit bestimmten Optionen auf. Also ua. das die libstdc++ mitgelinkt werden soll.
GCC steht übrigens nicht mehr für GNU C Compiler sondern für GNU Compiler Collection, da ja mittlerweile weit mehr Sprachen als nur C unterstützt werden
@Roland++
Nein, void main ist vom Standard her nicht vorgesehen und man sollte es nicht benutzen. Leider wird void main in vielen (schlechten) Tutorials/Büchern vorgestellt.
-
gehört dass schlüßelwort eigentlich zur Sprachenerweiteerung?
hab ich jetzt das erste mal gelesen.sonst macht man doch eine char-Array
Ich hab ein Buch ( Das C++ Grundlagen Buch, Data Becker) darin steht main mit void
-
Roland++ schrieb:
gehört dass schlüßelwort eigentlich zur Sprachenerweiteerung?
hab ich jetzt das erste mal gelesen.sonst macht man doch eine char-Array
Ich hab ein Buch ( Das C++ Grundlagen Buch, Data Becker) darin steht main mit void
ein schönes buch, ab älter und nicht standardkonform.. kann man gut zur konsolenprogrammierung gebrauchen, wenns nicht auf standard ankommt.
ansonsten: die neue stringklasse mal anschaun, roland, die steht da noch nicht drin und birgt einige erleichterungen..
-
std::string ist kein Schlüsselwort oder Builtin Type, wie char, sondern eine Klasse.