Programmieren unter Linux gcc. (iostream header einbinden, etc)

Hallo zusammen.

wieso kann ich die IOstream header nicht einbinden?
Es kommt eine Fehlermeldung bei der selbst google ratlos ist.

bildschirmphoto15zl.png


Wo in 3 Teufelsnamen liegt das Problem?
Wenn ich #include <iostream> entferne kann ich compilieren.
........
Wenn ich die printf Anweisung einfüge habe ich dasselbe Problem. Fast dieselbe Fehlermeldung.

Gibt es Programme für Linux, die einen Editor und Compiler beinhalten, aber sonst kaum eine Funktion haben? Ich meine ich vermisse die guten alten Turbo C++ Zeiten, wo ich einfach eine Quelldatei öffnen konnte, ohne gleich ein Projekt mit 9293 Dateien anlegen zu müssen.
Wo man kreativ und zügig den Code verändern kann und durch z.B. die F9 Taste das Compilieren einer Quelldatei ausführt.

Wie habt ihr bei Linux angefangen zu Programmieren?
 
die fehlermeldung kommt vom linker und nicht vom compiler. liegt also nicht direkt am #include <iostream>. den aufruf fehlen wohl noch ein paar c++-spezifische argumente für den linker. welche das sind, weiß ich jetzt auch nicht, aber wenn du "c++ hallo.cpp -o test" zum kompilieren nutzt, dann geht das ;)
 
Original von Der Meister
den aufruf fehlen wohl noch ein paar c++-spezifische argumente für den linker. welche das sind, weiß ich jetzt auch nicht

-lstdc++

@link

gcc linkt nicht gegen die C++-Standardlibrary, also musst Du die entweder mit dem obigen Switch einbinden oder c++/g++ benutzen.
 
nochmal zum thema editor: wie ich sehe verwendest du KDE, also kannst du ruhigen herzens zu KDevelop greifen. verwende ihn selbst und finde in recht nett. wenn auch unter XFCE4 :)

NN
 
@meister, Ray... hum darauf muss mal erstmal kommen. Warum das so ist, versteh ich auch noch nicht. Es wird wohl noch weiterer Einarbeitszeit brauchen, bis ich damit zurechtkomme. :D Aber es macht schon Spass mit Linux umzugehen.

@core... den emacs editor hatte ich schon kurz ausprobiert gehabt, aber nicht weiter realisiert, das es damit einfacher geht. Bei der Fülle an Software, die man mitbekommt, kann man schnell mal den Überblick verlieren. 8o

@Non... genau das wollte ich ja "erstmal" vermeiden. Kdevelop ist ein mächtiges Tool, aber als Werkzeug schwierig zu Handhaben, für Anfänger.

Vielen Dank für die Antworten :)
 
versuche folgendes:

Code:
#include <iostream> // Versuch auch mal #include <iostream.h>

using namespace std; // alternativ könntest du cout auch mit std::cout ansteuern.

// dieser befehl erspart dir allerdings ein wenig tipparbeit.

int main () {

cout << "Hallo Welt" << endl;

return 0;
}
 
Noch ein Hinweis: du tust da gerade eine der dümmsten Sachen, die man unter Linux machen kann - du arbeitest als root.
Linux ist (wie alle Unix-artigen Systeme) ein Multiuser-System (und zwar im Gegensatz zu Windows ein echtes). Der Sinn der Sache ist, dass man nicht mit dem Admin-Account arbeitet, sondern den nur zur Administration benutzt. Das ist einfach sicherer als mit vollen Rechten zu arbeiten.
Du machst als root deine Programmierübungen (noch dazu in Nonstandard-Directories auf / statt in irgendeinem Ordner innerhalb deines Homedirectories) und führst irgendwelche grafischen Editoren, wahrscheinlich sogar die ganze KDE als root aus. Damit hebelst du einen Großteil des Sicherheitskonzeptes aus. Unter Windows ist es vielleicht normal, als Admin zu arbeiten und seine Dateien irgendwo auf die Platte zu schmeißen, unter Linux ist es das nicht.
Es gibt Dinge, die man einfach nicht tut, und das gehört definitiv dazu.

@ topic:
Ich verwende für kleinere Scripte meistens vim und für Großprojekte (mehr als eine Datei) kate, den großen Bruder des Editors kwrite, den du anscheinend verwendest. Damit bin ich eigentlich ganz zufrieden. Wenn du IDEs lieber magst, guck die KDevelop oder Eclipse (mit entsprechendem Plugin) an.
 
unter unix-artigen betriebssystemen verwendet man zum automatisieren des uebersetzungsprozesses von c/c++ code ein werkzeug namens "make". dafuer schreibt man ein sog. makefile in dem steht welche dateien mit welchem compiler, welchen optionen, welchen bilbiotheken, etc. uebersetzt werden sollen.
die hauptaufgabe einer IDE ist IMHO so ein makefile automatisch zu verwalten. am anfang machts aber auf jeden fall sinn sich selbst damit rumzuschlagen. wenn du ein makefile hast musst du nur noch "make" tippen und alles wird uebersetzt und zusammengelinkt und am ende faellt das fertige programm raus.
in emacs, vim und vielen anderen editoren kann man den aufruf von make aus dem editor machen und kriegt die ausgabe des uebersetzungsvorgangs auch im editor angezeigt.
makefiles von hand schreiben ist keine besonders dankbare aufgabe. wenn man das fuer kleine projekte mal gemacht hat und das prinzip verstanden hat kann man entweder eine ide, ein kleines tool zum erzeugen von makefiles (wie z.b. mfg) oder gnu automake verwenden. letzteres benutzen viele grosse open-source projekte die auf vielen plattformen kompiliert werden koennen.

neben der manpage von make findest du z.b. hier noch weiter infos:
http://vergil.chemistry.gatech.edu/resources/programming/c-tutorial/make.html
http://www.student.cs.uwaterloo.ca/~isg/res/unix/make/tutorial/
http://www.mtsu.edu/~csdept/FacilitiesAndResources/make.htm
http://theory.uwinnipeg.ca/localfiles/infofiles/make/make_toc.html
 
Die korrekte syntax für C++ compiles ist


Code:
$ g++ -o prog main.cpp
 
Original von P21YALPHA
Die korrekte syntax für C++ compiles ist
Code:
$ g++ -o prog main.cpp

aber auch nur, wenn du den gnu c++ compiler nimmst! beim intel/borland comiler ist es sicherlich nicht "g++". von daher wuerde ich nicht 'DIE korrekte' sondern 'EINE korrekte' schreiben.
 
Klar, du hast recht.

Aber warum kommerzielles nutzen, wenn das freie besser (nix kostet) ist?

EDIT:
Im ersten post in diesem Thread wird ja auch versucht mittels C compiler c++ header einzubinden. Das funzt nicht. ;)

Deswegen mein post mit g++
 
Zurück
Oben