Hallo, ich habe bisher nur mit Visual Studio in C/C++ programmiert und wuerde gerne mit Linux, speziell Xubuntu und Debian arbeiten. Da ich noch nie mit Linux zutun hatte, dauerte das erste HelloWorld mit Texteditor erstellt und dann per gcc ausgegeben sehr lange. Insbesondere dieses Rechte Geschichte wir chmod a+x. Etc. Nun meine erste Frage: Mit welchen Programmen werden die Lib-Dateien wie iostream geliefert? Bei Visual Studio werden diese mit installiert. Sind diese bei Linux bereits enthalten oder werden diese mit der Installation vom Compiler mit installiert? Meine zweite Frage. Muss man bei der Installation von Software für Linux etwas beachten? Sehen immer wieder komplizierte Anleitungen, unter Windows geschieht das mit einer einfachen Setup Datei.
Also so ähnlich wie Visual Studio ist kdevelop, welches bei Deiner Distribution dabei sein sollte, das kommt auch aus der C++-Ecke. Es gibt auch noch Eclipse, allerdings muss man da ggf. etwas basteln bis da der Compiler usw drin sind. Normalerweise nimmt man halt einen Editor (vim, Emacs, usw) und Makefiles. Was eventuell, besonders für GUI-Anwendungen für Dich interessant sein könnte ist Lazarus. Das sollte auch bei der Distribution schon mit dabei sein. Das ist ein moderner Klon von Delphi.
Andre R schrieb: > Meine zweite Frage. Muss man bei der Installation von Software für Linux > etwas beachten? Sehen immer wieder komplizierte Anleitungen, unter > Windows geschieht das mit einer einfachen Setup Datei. ha. ha. ha. Kannst du den Appstore auf deinem Handy bedienen? Ungefähr so läuft die installation von Programmen, und auch Libs, auf Linux. Schon immer. Da kann sich Windows verstecken. Nennt sich Paketmanager. Nach 20 Jahren will MS das wohl nun auch in Windows 10 einführen und Apple hat vor Kurzem auch erkannt, dass das cool ist... Nimm übrigens Arch (Manjaro), das ist wesentlich besser als Ubuntu. Und schau dir mal Qt an.
installieren der build-essentials. Dazu wiki in ubuntuusers etc. Als Entwicklungsumgebung eignet sich Codeblocks(extrem einfach zu bedienen, selbsterklärend), Eclipse(umfangreich, kann beliebig konfiguriert werden, aber auch schwerer zu bedienen, dafür auch unglaublich flexibel; wenn man irgendwann mal was professional machen will, trifft man mit Sicherheit irgendwann auf Eclipse oder konsorten), oder QT-Creator für GUIs mit QT, allerdings auch nicht gerade selbsterklärend. Alternativ: Editor mit Makefiles, da kann ich geany empfehlen, da lassen sich auch die makefiles recht einfach einbinden. Mit den build-essentials kommen auch die ganzen Standardbibliotheken
> Mit welchen Programmen werden die Lib-Dateien wie iostream geliefert?
Die sind eigentlich alle dabei, jedefalls wenn du das Paket
"build-essential" installierst. Du musst halt auch die richtigen Header
Dateien angeben.
Und ein schöner, nicht so überladener, Editor ist auch Geany.
Und wenn du an den Rechten herumschrauben musst, ist wahrscheinlich
irgendetwas falsch gelaufen. Nur wenn du ein Programm systemweit
einrichten willst brauchst du das, und da reicht dann z.B. ein
sudo cp programmname /usr/local/bin/
/usr/local/bin ist einer der Ordner, in dem Programme installiert
werden, die nicht von der Paketverwaltung kommen.
Vielen Dank für die ausführliche Antworten. Das hat mir sehr geholfen. Diese Makefile Geschichte irritiert mich. Ich werde mich an eclipse versuchen. Jedoch benötige ich zur Installation einer Bibliothek namens EPICS anscheinend makefiles, zumindest wenn ich der Beschreibung folge...
Bevor du dich mit Eclipse und dem CDT herumplagst, schau dir vielleicht doch mal den QTCreator an. Der ist deutlich leichtgewichtiger und ähnlich leistungsfähig. Dank CMake Buildsystem kannste da auch Makefiles relativ einfach erzeugen lassen, im Detail kann's aber dann schon auch spannend werden. Aber immer noch besser als die GNU Autotools. Wichtig für dich bei der Migration wird erstmal sein, die Toolchain kennezulernen. Im MSVC hast du deine Toolchain schön von der UI versteckt, unter Linux hilft Dir eine Kenntnis der Toolchain mitunter schon ganz gut weiter. Ne andere Sache wo Du aufpassen musst, sind die uneinheitlichen ABIs auf Linux, da alles recht dezentral ist. Das ist für jemanden aus der Windows-Welt ziemlich lästig, hat aber auch seine Vorteile. Am besten Du setzt auf große und verbreitete Sachen wie QT oder Boost, dann bist Du ein paar Sorgen los. Makefiles selber sind auch nix schlimmes, die nutzt das VisualStudio auch - dort isses halt NMake als Buildtool. Aber wie gesagt, das soll nicht abschrecken, schau dir mal den QTcreator an, der nimmt Dir viel Arbeit ab.
Ich habe mir jetzt als Distro "Linux Mint". Ist im Unterbau auch Ubuntu bzw. Debian. Kann man echt empfehlen. iostream gehört zur C++ Standard Library. Such mal im Inet. nach ein Tutorial für C/C++ unter Linux. Da wird dir sicher einiges klarer. Wenn Du keine Makefiles selber schreiben magst, was am Anfang etwas nervt, dann kann man auch Monodevelop empfehlen. Software unter Linuz zu installieren ist in der Regel einfach. Entweder über "apt" oder Synaptic Package Manager und dergleichen. Wenn man selber was kompilieren möchte, dann genügt im einfachsten Fall configure+make. Wenn nicht, dann muss man halt schauen, was nicht passt.
db8fs schrieb: > Wichtig für dich bei der Migration wird erstmal sein, die Toolchain > kennenzulernen. Im MSVC hast du deine Toolchain schön von der UI > versteckt, unter Linux hilft Dir eine Kenntnis der Toolchain mitunter > schon ganz gut weiter. Um das klarzustellen, du kannst natürlich deine Anwendung, so wie du es von Windows und Visual Studio kennst, von einer IDE bauen lassen, z.B. bei QtCreator, Code::Blocks, etc.. Unter Linux jedoch werden traditionell universelle IDE-unabhängige Build-Systeme benutzt. Das rührt daher, dass bei der Linux/Unix Philosophie jedes Programm genau eine spezielle Aufgabe übernimmt, und Software auch als Quellcode veröffentlicht wird. Der Anwender benötigt dann nur Kompiler und Bibliotheken um die Anwendung zu installieren (also keine IDE). Normalerweise werden Anwendungen vom Packetmanager aus dem Internet (Repository) als Binärpakete installiert. Manchmal kommt es aber vor, dass man z.B. die allerneueste Version eines Programmes benötigt, das Repository aber eine ältere Version enthält (gibt verschiedene Gründe dafür) und der Entwickler auf seiner Webseite nur eine Source-Version anbietet, erst dann muss man mal selber kompilieren.
Das Kompilieren dürfte demnach auch einfacher sein als mit Visual Studio, da zahlreiche Einstellungen zumindest für einfach C-Code entfallen. Dennoch ist es eine Umstellung. In Visual Studio hatte ich den Code und konnte auf Debuggen und Ausführen klicken. Mit Gcc und Makefiles habe ich noch absolut keinen Überblick.
< ... und konnte auf Debuggen und Ausführen klicken. Mit Gcc und Makefiles habe ich noch absolut keinen Überblick. Das ist zwar etwas umständlicher als unter Windows, geht aber auch. Der Debugger heißt "gdb". Wer den bedienen will fühlt sich als wenn er noch mit CP/M arbeitet. Aber dafür gibt es dann Grafische Front-Ends wie "ddd". Das ist zwar nicht ganz so komfortabel wie damals in der Borland IDE, funktioniert aber halbwegs brauchbar. Voraussetzung ist aber, das man seine Programme mit dem Compiler Switch "-g" übersetzt/linkt.
Andre R schrieb: > Das Kompilieren dürfte demnach auch einfacher sein als mit Visual > Studio, da zahlreiche Einstellungen zumindest für einfach C-Code > entfallen. Welche zahlreichen Einstellungen? SDL, x86, x64, usw. usf.? > Dennoch ist es eine Umstellung. In Visual Studio hatte ich > den Code und konnte auf Debuggen und Ausführen klicken. Mit Gcc und > Makefiles habe ich noch absolut keinen Überblick. Dann probiere z.B. MonoDevelop, da geht das genauso wie unter VS. MonoDevelop hätte u.U. den Vorteil, dass es dasselbe XML-Projekt-/Solution-Dateiformat verwendet wie VS und diese auch importieren kann (meistens...)
Meine Meinung: Ubuntu ist für Anfänger sehr gut geeignet, wenn du das am laufen hast, bleib dabei. Zum installieren von Software reicht in 95% der Fälle ein
1 | sudo apt-get install name_der_software |
Dank Autovervollständigung muss man den namen auch nicht komplett kennen. Für den Beginn würde ich mich noch nicht auf größere Projekte stürzen (GUI usw). Für kleinere Programme empfehle ich einen Editor ohne IDE und händisches kompilieren von der Komandozeile oder Makefiles. Ich finde es extrem wichtig zu verstehen, welche Befehle von den build-tools (Makefile, CMake oder ganz versteckt in IDEs) aufgerufen werden. Das erleichtert später die Fehlersuche bei größeren Projekten enorm!
Theoretisch könnte ich mir gcc und diese Makefiles auch sparen. Würde eclipse nicht ausreichen oder benötigt eclipse zur Ausführung von C Code bzw Debuggen als Basis in Hintergrund gcc?
Andre R schrieb: > Theoretisch könnte ich mir gcc und diese Makefiles auch sparen. ? > Würde eclipse nicht ausreichen oder benötigt eclipse zur Ausführung von C > Code ?? > bzw Debuggen als Basis in Hintergrund gcc? Eclipse ist - wie auch Visual Studio - eine IDE, kein Compiler. Also Projektverwaltung, Editor etc. in einem. Beide rufen im Hintergrund die entsprechenden Programme auf. Natürlich brauchst du einen Compiler, Linker etc. Das ist der Kuchen, die IDE nur der Zuckerguss. Das hat nichts speziell mit Linux zu tun; du kannst auch unter Windows einerseits "zu Fuß" auf der Kommandozeile mit Compiler, Linker und Makefiles arbeiten, andererseits andere Tools/Compiler in VS (oder andere IDEs) einbinden. Das Prinzip ist eigentlich immer gleich, ob bei Eclipse, VS, KDevelop, Code::Blocks oder sonstwas.
Hallo Andre, Andre R schrieb: > Theoretisch könnte ich mir gcc und diese Makefiles auch sparen. Theoretisch ja. Praktisch ist es durchaus sinnvoll, zu verstehen, was Deine IDE im Hintergrund eigentlich wirklich macht. YMMV, Karl
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.