Tools zur C-Programmierung

lenn1

Mitglied
Thread Starter
Registriert
11.10.2005
Beiträge
194
Ich weiß nichtmehr weiter, ich fütter die SuFus diverser Foren schon den ganzen morgen (Ich hab Berufschule ^^) mit Wörtern.

Was muss ich alles installieren, damit ich C Programmieren kann und kompilieren kann.

Ich würd gern schon n richtiges Tool benutzen dass zum Programmieren gedacht ist und nicht soetwas wie "TextEdit"..


btw: Xcode Tools hab ich installiert allerdings kann ich nicht per gcc meine bereits vorhandenen *.c dateien kompilieren (Sind einfachste sachen.. berechnungen und so)

Danke im Vorraus
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
lenn1 schrieb:
...
btw: Xcode Tools hab ich installiert allerdings kann ich nicht per gcc meine bereits vorhandenen *.c dateien kompilieren
...
"kann nicht" ist eine sehr schlechte Fehlerbeschreibung, bei der man nur raten kann.
z.B.
- Du weisst nicht wie es geht
- Dein Code enthält Fehler
- die Tastatur ist nicht angschlossen
- Der Computer ist aus
- ...

Besser:
- Was genau möchtest Du erreichen?
- Wie genau versuchst Du es?
- Was genau passiert anstatt des gewünschten Ergebnisses?
(Fehlermeldungen etc.)
 

Gremlin

Mitglied
Registriert
11.01.2006
Beiträge
764
lenn1 schrieb:
btw: Xcode Tools hab ich installiert allerdings kann ich nicht per gcc meine bereits vorhandenen *.c dateien kompilieren (Sind einfachste sachen.. berechnungen und so)

Bei XCode ist eine umfangreiche Dokumentation dabei, lesen bildet :)

XCode tut nichts ohne ein Projekt, einfach eine .c-Datei kompilieren ist nicht. Du kannst natürlich über die Kommandozeile den gcc direkt aufrufen - das wird aber bei mehr als 2 oder 3 Dateien arg umständlich.
Wenn deine C-programme einfach nur kleine kommandozeilenbasierte Tools sind, legst du in XCode ein neues Projekt mit der Vorlage C-Tool an. Dem Projekt fügst du deinen Sourcecode hinzu und kannst sie kompilieren.

Gremlin
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
Gremlin schrieb:
...
das wird aber bei mehr als 2 oder 3 Dateien arg umständlich.
...
Da empfiehlt sich dann der Einsatz von make in Verbindung mit einem Makefile.
 

Gremlin

Mitglied
Registriert
11.01.2006
Beiträge
764
Richtig, das ist die portable Lösung - make gibt es für jede Plattform. Da kenne ich mich allerdings nicht mit aus.

Gremlin
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
Gremlin schrieb:
...
make gibt es für jede Plattform. Da kenne ich mich allerdings nicht mit aus.
...
Das ist eine echte Bildungslücke.
Gibt's im Netz jede Menge Dokumentationen/Tutorials.
 

lenn1

Mitglied
Thread Starter
Registriert
11.10.2005
Beiträge
194
Also auf meinem Desktop liegt eine Datei (Test.c)

Code:
#include <iostream.h>

void main
{
cout << "Hello World";
}

wenn ich nun gcc Test.c ausführe kommt das:

Code:
lenn1:~ lh$ gcc /Users/lh/desktop/Test.c
/Users/lh/desktop/Test.c:1:22: error: iostream.h: No such file or directory
/Users/lh/desktop/Test.c:4: error: syntax error before '{' token
lenn1:~ lh$


Im Visual C, was wir in der Berufschule haben funktioniert dies wunderbar?

Warum hier nicht?
 

sir.hacks.alot

Aktives Mitglied
Registriert
10.03.2005
Beiträge
2.408
es muss void main(void) oder int main(void) heissen. Hier akzeptiert Visual C nicht standardgemässes c
und du musst nur #include <iostream> schreiben nicht iostream.h
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
Weil das kein gültiges C Programm ist.

Ein C-Programm sieht so aus:
Code:
#include <stdio.h>

int main(void)
{
    printf ("Hallo!\n" );
    return 0;
}
 

sir.hacks.alot

Aktives Mitglied
Registriert
10.03.2005
Beiträge
2.408
ja stimmt das kommt noch dazu, du verwendest hier c++ befehle, sollte aber trotzdem ohne probs gehen wenn Du meine Änderungen einbaust. also:

#include <iostream>

void main(void)
{
cout << "Hello World";
}

Und dann das ganze mit g++ anstatt gcc compilieren.
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
Lies mal die manpage zu gcc/g++ bevor Du solche Tipps gibst ;).

Im Übrigen kann man Beiträge nach einer Minute auch noch editieren, wenn man noch ne Zeile anfügen möchte. ;)
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
Das hier:
Code:
% cat test.c
#include <iostream>

void main(void)
{
        cout << "Hello World";
}
% g++ test.c
test.c:3: error: '::main' must return 'int'
test.c: In function `int main()':
test.c:5: error: 'cout' was not declared in this scope

Alles klar :D?

edit: Was das Beispiel mit OOP zu tun hat ist mir schleierhaft *g*
 

lol

Aktives Mitglied
Registriert
18.01.2006
Beiträge
1.598
jedes c programm muss einen int zurueck geben, damit das betriebssystem weiss, unter welchen umstaenden das programm beendet wurde.
0 ist "alles ok", alles weitere != 0 sind fehler, die aber der Programmierer selbst definieren darf.
Die Befehle wie oben angesprochen (c/c++ sprachunterschiede), beachten.
 

maceis

Aktives Mitglied
Registriert
24.09.2003
Beiträge
16.879
Ja richtig.

sir.hacks.alot präsentiert uns hier aber ein C++ Programm - allerdings ein fehlerhaftes. Ich bin mir aber sicher, dass er noch eine Korrektur nachliefert ;).
 

below

Aktives Mitglied
Registriert
15.03.2004
Beiträge
13.564
Was maceis sagen wollte war: C++ Code muss mit g++, nicht gcc übersetzt werden.

Dann geht es auch (wenn die main richtig ist).

Ich hatte hier auch irgendwann man ein simples Beispiel-makefile gepostet, müsste man über die Suche finden.

Alex
 

lenn1

Mitglied
Thread Starter
Registriert
11.10.2005
Beiträge
194
Also was denn jetzt?
programmier ich in der Schule also c++ und mir wird blos gesagt, dass wir C programmieren.. ?
cout, cin, for,if else, do while,
Mit diesen befehlen arbeiten wir gerade in der schule.. kann ich irgendwie auch damit arbeiten.. is ja eigentlich wurst ob das jetzt c oder c++ ist..
 

below

Aktives Mitglied
Registriert
15.03.2004
Beiträge
13.564
lenn1 schrieb:
Also was denn jetzt?
programmier ich in der Schule also c++ und mir wird blos gesagt, dass wir C programmieren.. ?
cout, cin, for,if else, do while,
Mit diesen befehlen arbeiten wir gerade in der schule.. kann ich irgendwie auch damit arbeiten.. is ja eigentlich wurst ob das jetzt c oder c++ ist..

C++ ist ja eine Erweiterung von C. Man kann C Code also auch mit einem C++ Compiler übersetzten. Nur nicht umgekehrt.

for, if, else: Das ist alles "Basis-C"
cin, cout: Diese Dinge sind C++ eigen, und nicht mehr in C

Alex
 

sir.hacks.alot

Aktives Mitglied
Registriert
10.03.2005
Beiträge
2.408
OK :) hier die korrektur:

#include <iostream>

int main(void)
{
std::cout << "Hello World";
return 0;
}

Mit oop hat das natürlich noch nichts zu tun aber mit c++ und das haben wir in Grundzüge der oop gelernt. :)
 
Oben