C++ unter Linux

-starter-

Neuling
Thread Starter
Mitglied seit
18.03.2002
Beiträge
306
Ich will gerade C++ lernen; unter Windows funzen so GAAANZ billige sachen schon (so à la FAkultät ausrechnen :rolleyes: ). Unter Llinux jedoch klapp garnix:
Ich habe z. B. folgenden code als sohalt.cpp:

#include <iostream.h>

void main(void) {
cout << "Hallo";
}

Wenn ich dann auf der Shell gcc sohalt.cpp eingebe kommen nur zig Fehlermeldungen.
Auch mit int main(void) tut sich nix.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
was kommen denn für fehler?
 
Hm unter C++ würde ich es so schreiben

#include <iostream.h>

int main() {
cout << "Hallo" << endl;
}
 
Hier die Fehlermeldungen, die ich bekomme, wenn ich gcc das.cpp ausführe. Der Code ist der, den CirusTheVirus vorgeschlagen hat:

:~/Documents/Programmierung> gcc das.cpp
In file included from /usr/include/g++/backward/iostream.h:31,
from das.cpp:1:
/usr/include/g++/backward/backward_warning.h:32:2: Warnung: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
das.cpp:5:3: Warnung: no newline at end of file
/tmp/ccdJDKpI.o(.text+0x14): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
/tmp/ccdJDKpI.o(.text+0x21): In function `main':
: undefined reference to `std::cout'
/tmp/ccdJDKpI.o(.text+0x26): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccdJDKpI.o(.text+0x2f): In function `main':
: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccdJDKpI.o(.text+0x5c): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/ccdJDKpI.o(.text+0x8b): In function `__tcf_0':
: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/ccdJDKpI.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
 
da scheint irgendwas mit dem header nicht zu stimmen
 
Hm,ich habe jetzt keinen Rechner mit Linux hier unter dem Vs6 geht das was ich geschrieben habe ohne Probleme.
kannst mal probieren den #include <iostream> so zu schreiben .
 
Bei

#include <iostream>

int main() {
cout << "Hallo";
}

kommt das:

das.cpp: In function `int main()':
das.cpp:4: error: `cout' undeclared (first use this function)
das.cpp:4: error: (Each undeclared identifier is reported only once for each
function it appears in.)


oder wenn mit << endl;

das.cpp:4: error: `cout' undeclared (first use this function)
das.cpp:4: error: (Each undeclared identifier is reported only once for each
function it appears in.)
das.cpp:4: error: `endl' undeclared (first use this function)
simon@linux:~/Documents/Programmierung> gcc das.cpp
das.cpp: In function `int main()':
das.cpp:4: error: `cout' undeclared (first use this function)
das.cpp:4: error: (Each undeclared identifier is reported only once for each
function it appears in.)
das.cpp:4: error: `endl' undeclared (first use this function)
 
dann probier mal anstatt dem cout ein printf zu benutzen ist zwar an sich c und somit nicht ganz sauber von der Programmierung her aber zum testen mal ok.
 
geht leider auch nicht.

Ich glaube eher das da entweder was nicht oder falsch installiert worden ist oder ich gcc mit irgendwelchen parametern starten muss. ???
 
Das könnte auch sein ,dann schau doch mal mit Yast ob alles installiert ist und prüf mal die Abängigkeiten . Ist das Ok ,schau einfach mal in die hilfe vom Gcc rein
 
Jetzt ging's. Ich hab immer gedacht, die Kommandos zum Kompilieren seien für C und C++ gleich. Is aber nich: gcc für C und g++ für C++.

So ein dummer Fehler aber auch.

Aber trotzdem Danke für eure schnellen Antworten!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh