staging.inyokaproject.org

Starthilfe für C Programmierer gesucht

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Keine Angst, ich brauche keine Einfürung in C.
Ich habe früher schon in C und anderen Programmiersprachen programmiert und dabei teilweise auch in der Konsole gearbeitet. Nach meinem Wechsel in die Windows Welt habe ich dann nur noch mit der IDE des Borlad Compilers gearbeitet. Meist waren es Konsolenanwendungen oder einfache Win Programme unter direkter Verwendung des Win API's.

Unter Linux ist mein Problem, das ich noch keine Ahnung von den Konventionen habe und nicht weiss welche Dateien wohin gehören bzw. welche Verzeichnisstruktur ich ggf. vorher anlegen muß, also der ganze Formalismus drumherum. Eine brauchbare IDE währe natürlich auch nicht schlecht, weil sowas natürlich mit einem schnelleren Anfangserfolg die Motivation steigern kann, ist aber kein muß!
Wenn ich in der Synaptic Datenbank suche, werden übrigens 2 Versionen von Glade angezeigt. Ist das was für mich?

Bin für jeden Hinweis dankbar
Dakuan

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Da kann ich dich vielleicht beruhigen.
C und C++ Kompiler unter Debian/Ubuntu einrichten, oder Generell Linux ist sowas von simpel. 😉

Einfach als root

apt-get install gcc

eintippen. Das ist der C-Compiler. Wenn du auch C++ machen möchtest dann Installiere dir den C++ Compiler. Dazu dann noch

apt-get install g++

eingeben.

Wenn dann über Synaptic alles installiert wurde reicht es wenn du in der Shell z.B. eine Simple Datei anlegst. Als Beispiel hier mal eine "main.c"

#include <stdio.h>

int main(int argc, char *argv[])
{
     printf("Halle, Welt\n");
     return 0;
}

Diese Datei kannst du einfach kompilieren, indem du dann in der Shell

gcc main.c

eingibst.

Mit der Option "-o kannst du die ausgabe Datei bestimmen.

gcc main.c -o hallowelt.bin


Erzeugt z.B. das Ausführbare Programm "hallowelt.bin"

Wenn du C++ Dateien hast, dann tauscht du einfach das "gcc" durch "g++" in den oberen Beispiel aus. Die Optionen der Compiler müssten nahezu identisch sein. Gebe aber keine Garantie. Sind einfach zu viele Optionen die die Compiler können. 😉

IDEs für C/C++ ist z.B. Anjuta.
Gefällt mir am besten, weil es auch Code Vervollständigung hat. Und da es ein GTK+ Programm ist, passt es auch am besten zur Optik zu Gnome.

Ansonsten für kleine Programme nehme ich Persönlich sogar immer "mcedit". Ist der Texteditor aus "mc". Hat auch Syntaxhighliting für alle Mögliche Sprachen. C/C++, Perl, Bash etc.

Ansonsten von Hand musst du eigentlich gar nichts mehr machen. Also keine Pfade oder sonst irgendetwas eintragen. Halt nur "gcc" und "g++" Installieren.

Zusätzlich solltest du noch "make" und "automake" installieren.

Glade ist ein Programm womit du GTK+ Oberflächen Entwickeln kannst. Habe aber in der Grafischen Programmierung noch nie gearbeitet, kann dir da also nicht die Funktionsweise von Glade oder so erklären. Oder wie das alles genau Funktioniert. Mit dem Einbiden nachher im Code.

Anjuta ist Übrigens die einzige IDE die ich gefunden habe mit Code Autovervollständigung. Ansonsten wenn du das nicht brauchst, kannst du auch emacs, vi oder sonstige Editoren Benutzen. Hat ja meist sowieso jeder mindestens Syntaxhighliting. Selbst vi kann das (oder vim).

Für KDE gibt es KDevelop. Was auch nicht schlecht ist, hat aber auch kein AutoCodeVervollständigung. Unterstützt aber 13 Sprachen oder so, nicht nur C/C++ wie Anjuta.

Ansonsten ist unter Windows der Bloodshed Dev-C++ IDE recht gut. Diese wird gerade auch auf Linux Portiert. Hoffe die wird bald fertig. Zur Zeit steht nur eine Beta für Linux zur Verfügung. Wenn diese im Release sein wird, und vernünftig läuft, wäre das persönlich meine bevorzugte IDE.

Obwohl das mit Bloodshed schon irgendwie witzig ist. Bloodshed benutzt den Linux gcc, g++ Compiler der auf Windows Portiert wurde, für ihre IDE. Wenn du mal eine makedatei vom Bloodshed siehst, wirst du sogar sehen das dort Linux Befehle benutzt werden. 😉 Und selber gab es die IDE nur für Windows. Obwohl sie wohl Hauptsächlich aus GNU Komponenten besteht.

pippovic

Avatar von pippovic

Anmeldungsdatum:
12. November 2004

Beiträge: 9130

Zum Thema C-IDE verweise ich mal hierhin:

http://www.ubuntuusers.de/viewtopic.php?t=451

Gruß
pippovic

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Das ging ja mal wieder schnell.

Also gcc ist bereits installiert, brauchte ich um meine nForce und nVidia Treiber zu installieren.

Als Beispiel hier mal eine "main.c"

Nee, das ist ja fast zu einfach 😮
Ich hatte im SuSE Handbuch einige Hinweise über Installationspfade gesehen und welche "Gefahren" es dabei evtl gibt. Bezog sich allerdings auf neue Kernel, hat mich aber verunsichert.

IDEs für C/C++ ist z.B. Anjuta.

Noch nie gehört, werd mal danach suchen, danke.

Glade ist ein Programm womit du GTK+ Oberflächen Entwickeln kannst.

Hab ich in der Buchhandlung in einem SUSE Buch gesehen, konnte dort aber aus zeitlichen Gründen nicht das ganze Buch inhallieren bzw. mich nicht zum Kauf entschliessen 😉

Für KDE gibt es KDevelop. Was auch nicht schlecht ist...

Das hatte ich unrter SUSE 8.2 schonmal installiert. Es gab dabei aber tausende Fehlermeldungen wegen falscher Pfadeinstellungen, die sich nicht korrigieren liessen (typisch SUSE). Habe es hier nicht weiter in Betracht gezogen weil unter Ubuntu KDE wohl eher untypisch ist.

Na ja, ich werd morgen einfach mal anfangen und sehen was passiert. Da wird sich dann zeigen wie "kompatibel" meine Win Sourcen sind 😉

danke
Dakuan

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Noch nie gehört, werd mal danach suchen, danke.

Suchen?

apt-get install anjuta

🤣

Das hatte ich unrter SUSE 8.2 schonmal installiert. Es gab dabei aber tausende Fehlermeldungen wegen falscher Pfadeinstellungen, die sich nicht korrigieren liessen (typisch SUSE). Habe es hier nicht weiter in Betracht gezogen weil unter Ubuntu KDE wohl eher untypisch ist.

Wäre mir persönlich neu dass man irgendwie Pfade anpassen mussen. Aber muss auch dazu sagen das ich nicht besonders viel Programmiere. Und schon gar nicht auf GUI Ebene. Kann ja sein dass man für die Bibliotheken für GTK+ etc. etwas anpassen muss. Aber Ansi-C geht jedenfalls sofort ohne Probleme, mit seinen Standard Bibliotheken.

Ich denke irgendwann in Zukunft werde ich mich noch dazu durchringen GTK+ zu Lernen, aber das wird wohl noch lange lange dauern.

Na ja, ich werd morgen einfach mal anfangen und sehen was passiert. Da wird sich dann zeigen wie "kompatibel" meine Win Sourcen sind

Viel Glück. 😉
Wahrscheinlich wird gar nichts gehen. 😉 😛

Kannst ja mal dein Erfolg Posten. Würde mich Interessieren ob es klappt, oder nicht, und was du genau Programmiert hast.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Hmm, irgendwie wurden wir unterbrochen 😉 Ich hoffe ich finde den roten Faden wieder.

Also, Anjuta habe ich inzwischen über Synaptic installiert. Läuft im Pronzip auch, aber ich bekomme (noch) keine Kontext sensitive Hilfe. →"devhelp not installed". Wenn ich das nachhole will er auch den Mozilla Browser installieren. Ist das wirklich notwendig. Ich habe doch schon FireFox. Mir wächst langsam die Platte zu! (Ist ein Testrechner mit Win98, SuSE92. Kanotix und Ubuntu und DeMuDi soll auch noch drauf - bei nur 80GB) 😢

Wäre mir persönlich neu dass man irgendwie Pfade anpassen mussen.

Es geht um einige Hilfe Dateien, die zwar installiert wurden, aber in anderen Pfaden, die bei der manuellen Anpassung nicht akzeptiert werden und um htdig.

Wahrscheinlich wird gar nichts gehen.

Na ja, gar nichts ist nicht richtig, prinzipiell geht es schon. Ich muss allerdings den kompletten Pfad angeben. Hab mich noch nicht getraut an den Environment Variablen rumzupfuschen.
Wenn ich's über Anjuta mache, bekomme ich die Fehlermeldung, dass kein "automake" installiert ist. Synaptic bietet mir 4 Versionen an (1.4 - 1.8 ) und irgendwie steht bei jeder das sie "buggy" ist. Welche muß ich also installieren???

Ich habe dann mal testweise ein Filterprogramm für HTML Dateien aus der kommandozeile übersetzen wollen. Nach 2 Änderungen hat er auch nicht mehr rumgenörgelt, aber ich bekomme den Fehler
": undefined reference to strncmpi'"

Kannst ja mal dein Erfolg Posten.

Siehe oben...

...und was du genau Programmiert hast.

Na ja, nix besonderes. Kleine HTML Filter, weil es eben nervig ist "mal eben" bei 800 HTML Dateien einige Tags und Attribute manuell zu ändern nur damit meine PHP Scripte wieder arbeiten.
Oder einen JPEG-Cleaner der überflüssige Daten (exif etc.) aus .jpg Dateien entfernt. Es ist erstaunlich wieviel Schrott z.B. Photoshop hinterläßt, wenn der Designer nicht aufpasst. Ich habe schon Bilder mit 50% Ballast gesehen und das hat auf Webseiten nicht zu suchen, da es unnötig Traffic erzeugt und evtl. auch ein Datenschutz Risiko sein kann.
Und was ich sonst noch verbrochen habe kannst Du dir unter http://www.scasm.de/ ansehen. Ist aber nur etwas für eingefleischte M$ Flugsimulator Fans (speziell Scenery Designer).

Dakuan

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Dakuan hat geschrieben:

Hmm, irgendwie wurden wir unterbrochen 😉 Ich hoffe ich finde den roten Faden wieder.

Also, Anjuta habe ich inzwischen über Synaptic installiert. Läuft im Pronzip auch, aber ich bekomme (noch) keine Kontext sensitive Hilfe. →"devhelp not installed". Wenn ich das nachhole will er auch den Mozilla Browser installieren. Ist das wirklich notwendig. Ich habe doch schon FireFox. Mir wächst langsam die Platte zu! (Ist ein Testrechner mit Win98, SuSE92. Kanotix und Ubuntu und DeMuDi soll auch noch drauf - bei nur 80GB) 😢

Trenn dich doch von Suse. \^^
Win98? Was dass den? 😉

Also habe bei mir Testweise mal simuliert das Mozilla deinstalliert wird, und er versucht dann auch devhelp zu deinstallieren. Ist also wohl beides dann doch abhängig voneinander.

Hab aber nur ein Kritikpunkt an Anjuta. Die Makefile, und das Projekt was Standardmäßig erzeugt wird, ist einfach Höllisch groß.

Es geht um einige Hilfe Dateien, die zwar installiert wurden, aber in anderen Pfaden, die bei der manuellen Anpassung nicht akzeptiert werden und um htdig.

Hmm, dazu kann ich dir nichts sagen, habe schon lange nichts mehr Programmiert und auch die Lust verloren da großartig in C/C++ noch was zu machen.

Zur Zeit mache ich nur noch etwas C/C++ Programmierung, weil ich es in der Berufsschule machen muss. Und für die kleinen Anfänger Sachen die wir dort machen reicht ein Fuktionierender Kompiler und ein Syntax Highlighting im Editor volkommen aus.

Na ja, gar nichts ist nicht richtig, prinzipiell geht es schon. Ich muss allerdings den kompletten Pfad angeben. Hab mich noch nicht getraut an den Environment Variablen rumzupfuschen.
Wenn ich's über Anjuta mache, bekomme ich die Fehlermeldung, dass kein "automake" installiert ist. Synaptic bietet mir 4 Versionen an (1.4 - 1.8 ) und irgendwie steht bei jeder das sie "buggy" ist. Welche muß ich also installieren???

Habe bei mir mal geschaut, habe bei mir sogar 2 Versionen von automake installiert. Einmal die 1.4er und die 1.6er automake Version.

Ich habe dann mal testweise ein Filterprogramm für HTML Dateien aus der kommandozeile übersetzen wollen. Nach 2 Änderungen hat er auch nicht mehr rumgenörgelt, aber ich bekomme den Fehler
": undefined reference to strncmpi'"\\

Hmm, vielleicht gibt es den Befehl auch nicht in den Linux Headern? Ansonsten hast du auch die richtige Linux Header eingebunden?
Anjuta selber zeigt nur für den Befehl "strncmp" (ohne das i) die Syntax an.

Ansonsten kann es wirklich sein, dass der Befehl nicht unter Linux oder besser gesagt in den Libraries zu gcc nicht existiert. z.B. gibt es getch() aus der conio.h auch nicht in Linux. Und fflush(stdin) bewirkt unter Linux auch kein Löschen des Standard Eingabepuffers. Manche Sachen sind halt anders.

Na ja, nix besonderes. Kleine HTML Filter, weil es eben nervig ist "mal eben" bei 800 HTML Dateien einige Tags und Attribute manuell zu ändern nur damit meine PHP Scripte wieder arbeiten.
Oder einen JPEG-Cleaner der überflüssige Daten (exif etc.) aus .jpg Dateien entfernt. Es ist erstaunlich wieviel Schrott z.B. Photoshop hinterläßt, wenn der Designer nicht aufpasst. Ich habe schon Bilder mit 50% Ballast gesehen und das hat auf Webseiten nicht zu suchen, da es unnötig Traffic erzeugt und evtl. auch ein Datenschutz Risiko sein kann.
Und was ich sonst noch verbrochen habe kannst Du dir unter http://www.scasm.de/ ansehen. Ist aber nur etwas für eingefleischte M$ Flugsimulator Fans (speziell Scenery Designer).

Dakuan

Fan von Flugsimulator war ich irgendwie nie, viel zu langweilig. 😉

Auch wenn das nicht unbedingt die Passende Lösung ist, aber bei HTML und File Bearbeitung kann ich dir auch Perl nahelegen.

Ich selber mache auch erst meine Einstiege in Perl, und bisher kann ich nur sagen es ist eine wirkliche Innovative Sprache. Eine Datei Einlesen, nach bestimmten tags suchen, und diese durch andere Sachen zu ersetzen ist relativ simpel. Dürfte in vielleicht 20 Codezeilen erledigt sein. Ganze Verzeichnisse zu durchsuchen, und das automatisch nur html Datei geöffnet und bearbeitet werden, geht auch relativ simpel.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Habe bei mir mal geschaut, habe bei mir sogar 2 Versionen von automake installiert.

Ok, werds einfach mal ausprobieren, Vielleicht gibt es da ja auch Abhängigkeiten sodaß sich der Rest von selbst ergibt.

Anjuta selber zeigt nur für den Befehl "strncmp" (ohne das i) die Syntax an.

Das konnte ich noch nicht testen, da die Hilfa ja noch fehlt. Trotzdem hätte ich da zumindest eine Warnung erwartet; irgendwas mit unknown prototype oder so. Mein Borland Compiler ist da sehr penibel.
Das die Funktion fehlt ist durchaus möglich, allerdings sagt die Borland Hilfe, das diese Funktion auch unter UNIX ferfügbar ist, aber was heisst das schon.

Manche Sachen sind halt anders.

Ich habe schon befürchtet, daß ich mich umgewöhnen muß 😉
Aber das macht flexibel.

aber bei HTML und File Bearbeitung kann ich dir auch Perl nahelegen.

Ich möchte mich nicht allzusehr verzetteln

Linux macht einem den Einstieg nicht gerade leicht. Bei Windows gibt's für jeden Dreck Bücher wie "xyz für Dummies" ...

Dakuan

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Ich habe schon befürchtet, daß ich mich umgewöhnen muß 😉
Aber das macht flexibel.

Naja so wie ich das bisher gesehn habe Funktioniert eigenltich Linux Code auch Problemlos unter Windows. Nur umgekehrt nicht. 😉

Wenn du natürlich GUI Programmierung machst sieht das wieder anders aus. Aber dafür gibt es ja auch die GTK Bibliothek die auch für Windows erhältlich ist.

Ich möchte mich nicht allzusehr verzetteln

Ach wirst du schon nicht. 😉 Grundlegende Sachen sind in Perl identisch zu C. Du hast dort genauso deine while, if, for schleife etc. Genauso wie in C. Sehen auch genau gleich aus.

Die Verbesserung sind in der Stringverarbeitung, und der Variablen. Dort ist das System ähnlich übernommen wie in PHP. Du hast ein Skalar wo du Strings und Zahlen speichern kannst. Je nachdem welche Funktion du benutzt wird der Inhalt als String oder Zahl anerkannt.

Eine Unterscheidung zwischenn Arrays wird in Perl trotzdem gemacht. Und der Zugriff auf ein Index ist egnauso wie in C. z.B: $array[0]

Weiterhin gibt es noch Hasehs die den "enum" in C gleich kommen. Mit den Regular Exxpressions hast du dann noch mehr Möglichkeiten der Manipulation.

Linux macht einem den Einstieg nicht gerade leicht. Bei Windows gibt's für jeden Dreck Bücher wie "xyz für Dummies" ...

Dakuan

Die Taugen aber auch nichts. 😉

Von O'Reilly sollte es denke ich auch gute Bücher zur Programmierung unter Linux geben. Ansonsten gibt es hier noch etwas.

http://www.pronix.de/modules/C/linux/

Das Linuxbuch wird bald als OpenBook veröffentlicht. Weiterhin gibt es dort noch das normale C Buch. Das geht auf Programmierung unter Windows und Linux ein.

Ein Buch zu GTK+ Programmierung findest du auch.

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Ich wollte grad' noch einen Nachtrag posten, aber Du warst schneller.

Also, "devhelp" ging natürlich nicht auf Anhieb. Hat dann einige Sekunden gedauert bis ich begriffen hatte, das ich auch noch die "Bücher" dazu brauche.
Hab also erstmal mit glibc angefangen, kann aber noch nicht überblicken was ich sonst noch brauche.
Beim ersten Test ist mir dann Aufgefallen, daß bei den Funktionen nicht steht, in welcher Header Datei die Prototypen stehen.

Vielleicht werfe ich irgendwann mal einen Blick auf Perl.

Die Taugen aber auch nichts.

Wenn der Preis stimmt reicht es für den ersten Überblick. Bei HTML habe ich auch mal so angefangen. Aber jetzt brauche ich nur noch SelfHTML und das Buch hat nur noch senen Heizwert 😉

Werd' jetzt erstmal weiterbasteln

Dakuan

Dakuan

(Themenstarter)
Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Zwischenbericht:
Nach ersetzen der nicht vorhandenen Funktion wurde mein unter Win entwikelte Filterprogramm fehlerfrei übersetzt und geht auch.

Jedenfalls habe ich, dank deiner Hilfe, damit schonmal den Fuß in der Tür zur Linux Programmierung.
Dakuan

Antworten |