C-Programmierwerkzeuge unter Linux
-
- welches Linux-Derivat schlägt ihr mir vor
http://www.tldp.org/LDP/lpg/- Compiler (nehme wahrscheinlich gcc)
gcc oder clang- Linker
den von gcc bzw. clang- guten Texteditor mit Syntaxhighlighting
vim- Debugger
selten benutzt/gebraucht (maximal printf)- Makefile Programm
makeSonst: http://www.tldp.org/LDP/abs/html/ und anderes zu sed oder awk
-
Danke für die ausführlichen Antworten.
SeppJ schrieb:
Ist das C-Buch auch gut?
Die C Programmiersprache. Habe ich aus der FAQ
Du hast hier die tolle Chance, dich an die Kommandozeile zu gewöhnen. versuch nicht, die Klickibuntioberflächen zu nutzen. Mit der Kommandozeile bist du nach wenigen Wochen viel effizienter als mit jeder Oberfläche. Üb am besten jetzt schon.
Danke, ich werde mir deinen Tipp zu Herzen nehmen.
Danke Knivil für die Links.
-
Als Ergänzung zu gdb gibt es noch valgrind um Memoryleaks zu finden.
Fragt sich nur, wie man das am besten lernt, weil das ist eine ganze Menge. Ich hatte das so gemacht:
1. Ubuntu mit Klickibunti installiert
2. Mit Geany angefangen, C zu programmieren (printf-Debugging)
3. Bash gelernt, an die Kommandozeile gewöhnen
4. Eine seriöse Linux-Distribution genommen
5. Auf Emacs gewechselt
6. Makefiles, Bisschen Perl, C++
7. Spätestens ab dann kommt man allein zurecht
-
Ich habe glaub ich vergessen zu erwähnen, dass ich schon Programmieren kann (~6-7 Jahre C++, C#, C seit einigen Wochen mit dem Buch,...) Leider hab ich Programmieren mit einer IDE gelernt (von der Schule aus), und habe bis jetzt nur mit einer IDE programmiert.
Wie schon SeppJ gesagt hat, will ich nicht mehr "Klickibunti".grindy schrieb:
1. Ubuntu mit Klickibunti installiert
Also ich hab mir gerade Ubuntu runtergeladen, aber noch nicht installiert. Wie schon gesagt kenn ich mich mit Linux Null aus. Das Programmieren ist nicht das Problem, überhaupt nicht. Mein Ziel ist es in den Ferien, Linux mit den Programmierwerkzeugen halbwegs standfest zu verwenden (Kommandos,...) und alles ohne Klickibunti.
Welches Derivat wäre dann ohne Klickibunti?
-
neuer User schrieb:
Welches Derivat wäre dann ohne Klickibunti?
Irgendeine Desktopoberfläche haben eigentlich alle üblichen Distributionen (außer beispielsweise Arch-Linux und ähnliche, aber da ist der erste Schritt auf dem Heimrechner, sich eine Desktopoberfläche zu installieren). Das ist auch an sich nicht schlecht, denn du willst in der Regel irgendeine Art von Oberfläche. Alleine schon, um einen vernünftigen Webbrowser zu haben. Aber auch mehrere Konsolenfenster gleichzeitig auf dem Schirm sind meistens praktischer als die virtuellen 80x25 Konsolen.
Ubuntu ist sicherlich keine verkehrte Wahl für einen Anfänger, wobei ich persönlich wirklich nicht mag, wohin die Entwicklung dort in den letzten Jahren ging*. Ansonsten irgendeine Distribution, die auf http://distrowatch.com/ weit oben steht. Die sind recht Mainstream, man sollte keine Probleme haben und wenn doch, bekommt man dank der vielen Nutzer sehr schnell Hilfe über Google. So wirklich viel tun die sich alle nicht, die Hauptunterschiede sind die Paketmanager (das Softwareangebot ist aber in der Regel sehr ähnlich), die Standardoberfläche (in der Regel austauschbar) und die allgemeine Philosophie bei der Auswahl der Standardkomponenten (alles Open Source oder Zugeständnisse an wichtige Closed Source, Aktualität vs. Stabilität).
P.S.: Auch wenn es auf Distrowatch weit oben steht, würde ich als allererstes Linux nicht unbedingt Arch nehmen. Das ist für den Erstkontakt vermutlich zu elitär (auch wenn das Konzept irgendwie cool ist. Kann man sich später mal angucken).
*: Da bin ich nicht ganz alleine. Ubuntu war lange Zeit die Mainstreamdistribution, aber Mint hat in den letzten Jahren den Marktanteil mehr als umgedreht.
-
für klickibunti empfehle ich dir
für gdb nemiver
als texteditor scribes und geanydu könntest dir zB xubuntu (benutze ich super xfce distro) installieren und dann einen einfachen window manager benutzen.
Ansonnsten erreichst du die Textterminals mit strg + alt + F[1..6] F7 für GUI und zB mit screen kannst du mehere Terminals in einem Terminal haben
-
gcc ist klar. Linker ist dabei.
Als Editor verwende ich vim. Es gibt aber wahrscheinlich keinen Editor, der noch schwerer zu bedienen ist. Aber wenn man das mal gelernt hat, geht es damit sehr flugs. Syntaxhighlighting kann der auch und vieles mehr. Ich bin mir nicht sicher, ob ich den wirklich empfehlen kann. Der könnte leicht abschreckend sein. Es gibt zig Editoren. Probiere einfach einige aus und nimm den, der Dir persönlich ab besten gefällt.
Meine bevorzugte Linux-Distribution ist momentan Fedora. Aber fast jede andere geht auch.
Als Benutzeroberfläche verwende ich XFCE oder KDE. Graphische Oberfläche heißt nicht gleich Klickibunti. Ich benötige die graphische Oberfläche hauptsächlich, um Konsolenfenster zu öffnen und dort auf der Kommandozeile Editor und Compiler aufzurufen. Und natürlich für Firefox, damit ich hier in dieses Forum komme .
Debugger ohne graphische Oberfläche finde ich anstrengend. Wenn ich wirklich einen Debugger brauche, dann verwende ich kdbg. Das ist eine graphische Oberfläche für gdb.
Als Build-System verwende ich die Autotools. Neulich habe ich dazu eine gute Seite gefunden: http://www.flameeyes.eu/autotools-mythbuster/. Insbesondere Abschnitt A.1: "Basic Autotoolization" ist eine sehr minimale Einführung.
Und ein wichtiger Tipp, der von anderen auch schon angedeutet wurde: lerne bash!!!
-
Ich kenne das genannte C Buch nicht. Practical C Programming (Steve Oualline) und
21st Century C (Ben Clemens) kann ich empfehlen.Dir fehlt es an *nix Wissen. GNU/Linux musst du dir als Baukastensystem vorstellen: die verschiedenen Distributionen verwenden verschiedene Bausteine. Abhängig von diesen ergeben sich jeweils verschiedene Vor- und Nachteile. (google z.B. nach init process) Welche Zusammenstellung der einzelnen Bausteine du bevorzugst, wird sich erst mit der Zeit zeigen.
Abweichend von SeppJ empfehle ich dir aber gerade Arch. Weshalb? Du möchtest ja Wissen um GNU/Linux erwerben! Arch (auch: Debian und Gentoo) ist bestens dokumentiert, schon durch die Installation (https://wiki.archlinux.org/index.php/Beginners'_Guide) lernst du sehr, sehr viel. Vorausgesetzt du setzt dich damit auseinander, soll bedeuten du versuchst jeden unklaren Punkt aufzuklären und folgst nicht nur stur den Anweisungen.
Und danach heisst es weiterhin lesen, lesen, lesen. Und nicht nur über die Funktionsweise und Handhabung deines Systems, sondern auch über damit eng verbundene Ideen. Weshalb sind grafische Oberflächen bei vielen Aufgaben der Kommandozeile unterlegen? Die Unix-Philosophie beantwortet die Frage. (Und wenn es noch nicht klar ist, dann arbeite eine Zeit lang mit deinem System und du wirst die Flexibilität bemerken.)
Zum Thema Programmierung unter *nix gibt es einiges an Literatur. Sobald du Zugang zur Uni-Bibliothek hast, würde ich dort herumstöbern. Oder du bringst in Erfahrung, welche Literatur im Studium verwendet wird, und richtest dich nach dieser.
PS: Es gibt natürlich auch Bücher, die sich mit Betriebssytemen allgemein beschäftigen. Zumindest früher hat man hier Tanenbaum empfohlen. Das hilft, die verschiedenen Spielarten in der *nix Welt besser zu verstehen.
Wenn du motiviert bist, dann kannst du innerhalb der nächsten zwei Monate einiges an Wissen anhäufen, und beginnst dein Studium mit einem sauber und nach deinen Vorstellungen laufenden System, das dir ausserdem einiges an Arbeit abnimmt. Also los geht's!
Im übrigen schreibe ich ansonsten nie GNU/Linux, ich möchte nur den TE zum Recherchieren ermutigen.
-
Guck dir mal sublime text als editor an. Die Version 3 ist derzeit in einer OpenBeta und damit kostenpflichtig. Wirkt bisher wie ein wirklich, wirklich guter Editor. Builden/laufen lassen kannste es direkt aus dem Editor raus (STR`+B zum Beispiel).
Bei Linux empfehle ich einfach mal Arch Linux. Damit kannste direkt von Anfang an Lernen, wie man richtig mit einem Linux umgeht. Man könnte auch sagen: DU musst es lernen.
Der Vorteil: Das ArchWiki ist verdammt gut. Da findet man fast alle infos, die man jemals braucht.
-
neuer User schrieb:
Hallo Com.
Im Oktober fängt mein Studium für Informatik an und möchte mich in den Sommerferien ein bisschen aufs Studium vorbereiten. Die Programmiersprache ist C unter Linux. Als Programmierwerkzeug verwenden die Professoren keine IDE, sondern alles separat. Ich kenne mich leider mit Linux gar nicht aus und weiß nicht, was ich nehmen soll.http://www.proggen.org/doku.php?id=c:start
neuer User schrieb:
Was ich brauche:
- eventuell gutes Lernmaterial (kein C-Buch, da hab ich schon eins, sondern Buch für Linux-Programmierung)Du solltest Dich erstmal mit der Bash vertraut machen.
neuer User schrieb:
- welches Linux-Derivat schlägt ihr mir vor
Ubuntu.
Hier gibt's für Einsteiger am ehesten Hilfen.
neuer User schrieb:
- Compiler (nehme wahrscheinlich gcc)
Wahrscheinlich, aber Du solltest clang auch eine Chance geben.
neuer User schrieb:
- Linker
Lass das mal den Compiler machen.
neuer User schrieb:
- guten Texteditor mit Syntaxhighlighting
Öffz... ich nehme Kate, Geany soll gut sein und will ich mal ausprobieren... vim wenn Du leicht masochistisch veranlagt bist... da gibt's viel Auswahl.
neuer User schrieb:
- debugger
gdb?
neuer User schrieb:
- Makefile Programm
make?
neuer User schrieb:
-... und das, was ihr mir noch vorschlagen würdet.
Lern erstmal einfach C.
neuer User schrieb:
Ich habe glaub ich vergessen zu erwähnen, dass ich schon Programmieren kann (~6-7 Jahre C++, C#, C seit einigen Wochen mit dem Buch,...) Leider hab ich Programmieren mit einer IDE gelernt (von der Schule aus), und habe bis jetzt nur mit einer IDE programmiert.
Wie schon SeppJ gesagt hat, will ich nicht mehr "Klickibunti".Mein Ziel ist es in den Ferien, Linux mit den Programmierwerkzeugen halbwegs standfest zu verwenden (Kommandos,...) und alles ohne Klickibunti.
Mach 'ne Konsole auf oder drück (STRG)-ALT-F1.
Nur weil Du keine IDE benutzt, muss Du ja nicht auf eine graphische Oberfläche verzichten, ooood'r?
Wenn Du für die GUIs für die Konsole programmieren willst, schau Dir NCurses an (ist noch eine Baustelle, aber zumindest gibt's ein paar Grundlagen, wenn ich mal wieder viiiel Zeit habe).