C Programmieren

S

SteffiS

Neues Mitglied
Thread Starter
Dabei seit
05.01.2003
Beiträge
19
Reaktionspunkte
0
Man kann doch mit dem ProjectBuilder auch C programmieren, oder?
ich versuch das gerade und kriegs irgendwie nicht hin..
Wenn ich "new project" und dann "standardTool" öffne, kann ich die main-datei ausführen (hello world) und ändern. aber sobald es etwas komplexer wird, geht's nicht mehr. ich kann zwar compilieren, die fehlermeldungen sehen, aber auch wenn ich dann alles richtig hab, und ich 'run' machen will, kommt nix, bzw. es läuft unendlich.
wo sind denn die header-dateien abgelegt (stdio.h z.B.) ? wo müssen die sein, damit das klappt?

gibt es sonst eine andere möglichkeit, c auf dem mac zu programmieren? über eine kommandozeile etc..
 
Zuletzt bearbeitet:
Du bist da einem kleinen Irrtum aufgesessen, der Project Builder und Cocoa laufen mit Objective C oder JAVA, normales C wird hierbei nicht unterstützt - wenn ich mich nicht irre. Sollte aber kein Problem sein, mit den Developer Tools wird der Compiler "gcc" mitinstalliert, mit Hilfe dessen kannst du C-Programme mit TextEdit oder einem beliebigen Editor deiner Wahl kreieren und anschließend in der Kommandozeile compilieren.
 
mit dem terminal hab ich dasselbe problem. ich kann das programm da zwar kompilieren, aber die datei später nicht ausführen, obwohl sie erstellt wurde.
woran liegt das? gibt es da einen besonderen befehl, oder liegt es vielleicht doch daran, dass die header-dateien nicht vorhanden sind? kann man die dann irgendwo herkriegen?

danke,
steffi

BTW: ist Objective C eigentlich das selbe wie C++ ?
 
Wäre Objective C das selbe wie C++ würde es wohl auch so heißen ;) Im Terminal compilierte Programme kannst du dann auch nur in diesem Starten, so läuft das ganze dann:

gcc program.c
...
./program

mit ersteren compilierst du das Programm, mit zweiterem rufst du es auf.
 
oh ja, jetzt klappt's, danke schön! dachte, man könnte es einfach durch eingabe des binärprogrammnamens ausführen so wie bei UNIX (es fehlte mir also nur das ./).
 
Das ./ ist eigentlich eine UNIX-typische Eigenschaft. Bei der Ausführung von UNIX-Programmen muss immer der komplette Pfad mit angegeben werden, für Programme im aktuellen Pfad ist das eben ./
Jedoch hängt dies entscheidend von der verwendeten Shell ab, einige Shells benötigen das nicht.
 
Mal ne Frage nebenbei

was genau ist nun Objective C ?

Thanks
 
Hi SteffiS!

Vielleicht ein paar Tips:

1. Objective-C ist eine Smalltalk ähnliche OO Variante von C (nicht zu verwechseln mit C++)

2. C++ ist ein OO Aufsatz auf Ansi-C

3. Man kann in Objective-C auch C++ Code schreiben (jedenfalls bei Apple), damit bestehender Code wiederverwertet werden kann. mann kann es tatsächlich mixen, ist kein problem

4. Man kann mit dem Project-Builder auch ganz normale C-Programme schreiben, diese sind in Ihrer Größe und Funktionalitaet nicht eingeschraenkt (mache ich manchmal, good old times...) ist auf jedenfall komfortabler als in der shell zu arbeiten, was natuerlich auch geht.

5. Die Haus- und Hofsprache für Mac OS X (wenn man die netten GUI's verwenden will) ist Objective-C da Cocoa (die Klassenbibliothek für die netten GUI's) in Obj.-C geschrieben ist.

6. Man kann auch mit Java die netten GUI's bauen, da Apple freundlicherweise für fast alle Cocoa-Klassen entsprechende Java-Klassen zur Verfügung stellt (nur nicht da wo es keinen Sinn macht, bzw. gleichwertige Klassen von Java mitgeliefert werden)

Wenn Du was nicht verstanden hast, dann liegt das garantiert an mir. Ich bin nicht der Weltmeister im erklaeren, frag dann einfach nochmal nach...

Ulf
 
Zu der Sache mit dem "./"

Es ist unter UNIX so, daß man, wenn man Superuser ist (alle die ihren Mac betreiben stellen es so ein dass sie ihn auch administrieren) keine programme im aktuellen Pfad ausführen, d.h. die PATH variable enthaelt nicht den eintrag "." oder "./". Warum ?

Eine reine Sicherheitsmassnahme. Nehmen wir an, UNIX laueft als Multiuser System im Netz, 100 user eingeloggt.
Ein User will in den Status des Superusers kommen (die Hauptbeschaeftigung der Studies);), dann muss er entweder das password des superusers kennen oder es aendern koennen. wenn er das password nicht kennt, bleibt nur weg nr. 2 und der geht so:

Man schreibe ein programm, welches in der datei /etc/shadow das password des su loescht oder einen vorher ausgeknobelten Eintrag darin plaziert. das darf ein user programm aber nicht, weil die besagte datei nur vom su gelesen und/oder veraendert werden darf.

Wie kann man also selber sein password aendern ?
Es gibt die moeglichkeit unter unix (durch setzen des SUID-Bit in der anwendung) ein programm mit den rechten seines besitzers laufen zu lassen. das Programm passwd z.B. gehoert dem su und darf su-dateien aendern. damit geht das dann.

und jetzt kommt der trick:

man schreibt ein hack-programm fuer die password datei und nennt es "ls". Dieses Programm aendert die password datei, ruft anschliessend das echte "ls" programm auf, und loescht sich selbst oder so aehnlich.
dann setzt mann das SUID-Bit und aendert den Eingetuemer auf "root" (so heisst der superuser unter unix).
jetzt ruft man den su an, und faselt irgendwas von einer verlorenen datei, und ob er nicht mal schauen koennte.

er wird in das userverzeichnis gehen, und... na was wohl? "ls -la" eingeben.

Schon ist es passiert. das fake programm ist gelaufen, das su passwort geloescht, der user kann jetzt selber 'ran.

Der superuser schoepft im ersten moment keinen verdacht, weil auf seiner konsole das erwartete passieren wird.

Deshalb muss man ./ vor einem programm angeben, damit ein admin nicht in so eine falle tappt.

So aehnlich funktioniert das im prinzip... bitte nicht meckern, wenn ich das eine oder andere detail weggelassen habe.

Ulf
 
Wo wir gerade bei den Pfaden waren..
Ich möchte meinen PATH erweitern und habe die entsprechenden Eintraege in der /etc/profile eingetragen, PATH="/.../...:/.../...:/sw/bin" aber die werden nicht übernommen. In der Console mit set nachgeschaut fehlt das :/sw/bin.
Habe es natürlich als root gemacht. und die Maschine neu gestartet.

Hmm was ist denn da los
 
Zuletzt bearbeitet:
mendicus schrieb:
Wo wir gerade bei den Pfaden waren..
Ich möchte meinen PATH erweitern und habe die entsprechenden Eintraege in der /etc/profile eingetragen, PATH="/.../...:/.../...:/sw/bin" aber die werden nicht übernommen. In der Console mit set nachgeschaut fehlt das :/sw/bin.
Habe es natürlich als root gemacht. und die Maschine neu gestartet.

Hmm was ist denn da los

Wenn Du die bash verwendest, solte das eigentlich klappen.
Möglich wäre, dass die PATH-Variable von einer benutzerdefinierten Datei überschrieben wird (z. B. ~./bash_profile)
export PATH sollte man auch nicht vergessen.

Rechner neu Starten ist eigentlich überflüssig, nur ne neue Shell starten.
Die PATH-Variable kann übrigens auch mit "echo $PATH" ausgegeben werden.
Zum Anhängen eines neuen Verzeichnisses ist auch der Eintrag
export PATH=$PATH:/sw/bin
am Ende der /etc/profile möglich (weniger Arbeit, geringeres Fehlerrisiko)

HTH
 
SteffiS schrieb:
Man kann doch mit dem ProjectBuilder auch C programmieren, oder?
ich versuch das gerade und kriegs irgendwie nicht hin..
Wenn ich "new project" und dann "standardTool" öffne, kann ich die main-datei ausführen (hello world) und ändern. aber sobald es etwas komplexer wird, geht's nicht mehr. ich kann zwar compilieren, die fehlermeldungen sehen, aber auch wenn ich dann alles richtig hab, und ich 'run' machen will, kommt nix, bzw. es läuft unendlich.
wo sind denn die header-dateien abgelegt (stdio.h z.B.) ? wo müssen die sein, damit das klappt?

gibt es sonst eine andere möglichkeit, c auf dem mac zu programmieren? über eine kommandozeile etc..
Selbstverständlich kannst Du mit XCode C/C++ programmieren, oder meinst Du den ProjectBuilder von 10.1.x ?? ... für System grösser als 10.2.x kann man nicht nur Objective-C programmieren... poste mal den SourceCode... und vielleicht noch die Fehlermeldungen...

Gruss Winn
 
Zuletzt bearbeitet:
Ausserdem gibts auch noch das CDT-Plugin für Eclipse, damit kann man auch C/C++ Programmieren.
siehe http://www.eclipse.org/cdt/

P.S.: Anscheinend werden es immer mehr Entwickler hier im Forum, gefällt mir :D
 
Probleme bei objective-c

Hi ihr da ich hab jetzt nicht den ganzen Thterad durchgelesen es kann also sein, dass ihr meine frage schon beantwortet habt aber egal.
Also ind der schule haben wir grad mit oop angefangen und das mit obj-c. Soweit kein Problem des mit der oop war zwar anfangs en bissle komisch weil unser lehre einfach sopwas von schlecht ist des is net mehr normal (srry is so) aber ich habs jetzt gechekt. Es gibt nur ein Problem unser Lehrer kann kein obj-c ich hab ihn heut anch nem befehl gefragt und seine antwort war :" ja musste mal im internet nachkucken" der mann hat einfach kein plan von nix. Der hat uns bis jetzt einfach kein einzigen Befehl beigebracht ham wir alles uns selbst aus den Fingern saugen müssen. Einmal hat er nen Befehl gewusst hat aber das semikolon am ende vergessen. der Effekt war, dass 24 schüler ca. 1 stunde lang versucht haben ein programm zu debugge dass ne randomzahl ausgeben soll. also ich hoffe ihr seht wie verzweifelt ich bin. Es wäre ein segen wenn einer von euch ne gute Hp für mich hättet wo die Befehle erklärt werden und so. Hauptsache irgendwas auch wenns in aramäisch is oder im übelste fachchargon (oder wie man de schreibt).
ich hoffe ihr könnt mir helfen
GizzZ
 
mal eine ganz blöde Frage

Ich bin wirklich ein ganz unbeschriebenes Blatt was Programmieren angeht und muss jetzt C lernen.
Da in der Uni natürlich PCs standart sind bin ich etwas verloren.

Mir wurde jetzt vorgeschlagen ich solle den Virtual PC installieren und darauf dan Visual Studio net.

Ist das wirklich sinnvoll?
Kann ich nicht mit diversen Apple Programmen arbeiten?
Und was ist am besten? Project Builder? Und wo bekomm ich die her?

Vielen Dank
 
lui.g schrieb:
Und was ist am besten? Project Builder? Und wo bekomm ich die her?
Apple hat Project Builder in Xcode umbenannt. Du brauchst einfach nur die Developer Tools von der Installationsdvd(Tiger) oder von der Xcode-CD(Panther) zu installieren. Du kannst Xcode auch hier runterladen.
 
Für C sollte auch ein einfacher Texteditor reichen. Die Developer Tools musst du allerdings trotzdem installieren, denn da ist auch der Compiler enthalten (gcc).
 
Vielen Dank!

Kann ich damit dann auch debuggen?

L
 
Zurück
Oben Unten