c++ os X programme - Newbie Question

  • Ersteller silversurfer202
  • Erstellt am
S

silversurfer202

Neues Mitglied
Thread Starter
Dabei seit
16.02.2005
Beiträge
16
Reaktionspunkte
0
Hallo,
ich habe eine Frage zum Programmieren in C++ in Panther / OS X.
Ich habe erst vor zwei Monaten gewechselt und wuerde gerne mein Powerbook auch zum Programmieren benutzen. Insbesondere wuerde ich gerne kleinere Programme in C++ und Java schreiben. Mein Problem ist, dass ich irgendwie nicht mit XCode klarkomme.

Ich kann wohl die Programme kompilieren und ausfuehren, aber wie erstelle ich komplette Dateien, also Applications, die ich dann einfach durch doppelklick starten kann?

Gibt es da irgendeine Art von Tutorial, die einen ins Programmieren unter OS X einfuehrt? (Basics von XCode, Applications, OS X vs. Windows programme, etc?)

Des weiteren wuerde ich gerne wissen, ob es Tutorials gibt, die beschreiben, wie man z.B. auf ICal oder AdressBook-Daten zugreifen kann oder Unix-Kommandos in die Programme einbauen kann...

Bin dankbar fuer jede Hilfe,
besten Dank,
Gruesse
 
Hallo silversurfer!
Ich bin auch gerade dabei mich in die Tiefen von Cocoa zu stürzen ( so heißt die API). Dabei ist zunächst mal wichtig, daß unter Apple Objective-C verwendet wird und eben kein C++ ( obwohl man beides msichen kann). Ein gutes Einstiegsbuch dazu gibt es von Hillegas ( muß mal nach dem Titel schauen). Erste Hilfe und ein paar Tutorials (Hello World mit Xcode) bekommst Du auch hier:

http://osxentwicklerforum.de/hmportal.php

allerdings mußt Du zum Download der Tutorials dort angemeldet sein ! Vom dortigen Forum gibt es auch ein link zu einem Wiki in dem sich einige Aufsätze zu speziellen Programmier-Themen befinden!
 
Hi,

wenn Du C++ programmierst, werden im Build-Verzeichnis automatisch ausführbare Dateien abgelegt.

Für die Java-Entwicklung würde ich aber wirklich Eclipse empfehlen. Und der Vorteil ist, dass Java-Programme nicht nur aus dem Apple laufen. ;)
 
Die aller erste Adresse ist da immer noch http://developer.apple.com

C++ ist allerdings ein bischen schwieriger, da es das von Apple favorisierte Cocoa-Framework nur für Objective-C gibt. Wer aber C++ kann lernt Objective-C in einem Nachmittag.

Anfangen kann man da mit einem kleinen Tutorial in Objective-C . Das gibt es auch für Java, allerdings sollte man, wenn man Cocoa nimmt auch Objective-C nehmen.

Dort findet sich dann z.B. auch Information zum Address Book und vielem anderen.

Wenn Du Unix Befehle ausführen willst, kannst Du das ganz einfach mit system(3) oder popen(3) machen, oder mit der Objective-C Klasse NSTask.

Du kannst ja auch mal im OSX Entwicklerforum vorbeischauen.

Gruss

Alex
 
kein c++??

Hallo,
ich habe im XCode mit C++ code Dateien erstellt und compiliert, wie kannes dann kein c++ unter OS X geben??
Mit fehlt da glaube ich eine globale Uebersicht...
Was ist also Cocoa?
Was ist Carbon?

Waere supernett, wenn mir jemand mal den groben Zusammenhang erklaeren koennte!
Wenn ich also kleinere Programme programmieren moechte und schon Java und C++ schreiben kann, (ok, c++ mehr basics), wie stelle ich das dann unter osx an? Kann ich mit objective C auch programme fuer Windows-Rechner schreiben? Ich dachte immer C++ sei plattformunabhaengig...

vielen Dank fuer eure Hilfe...
 
Cocoa ist ein Framework für Objective-C. Es ist das neue, schicke, schöne für OS X

Carbon ist das "klassische" Apple Framework für C und C++. Es stammt noch aus der pre-OS X Zeit und half am Anfang vor allem, die Portierung von OS 9 Programmen zu OS X zu erleichtern. Manche Dinge muss man aber heute immer noch in Carbon machen, was aber kein Problem ist da man Cocoa und Carbon beliebig mischen kann.

Jetzt kommen wir zur Frage von C++ und Platformunabhängig. Radio Erewan antwortet: Im Prinzip ja, aber das gilt ja nur für die Sprache. Das viel wichtigere sind aber die Frameworks, und die sind es eben nicht. Deshalb ist auch Cocoa und Java eine schlechte Mischung, denn Cocoa gibt es eben nur auf dem Mac.

Wenn Du Java entwickeln willst, nimm Eclipse (wie jemand anders schon sagte). Und schau Dich mal auf der Apple Seite um.

Gruss

Alex
 
silversurfer202 schrieb:
Hallo,
ich habe im XCode mit C++ code Dateien erstellt und compiliert, wie kannes dann kein c++ unter OS X geben??
Mit fehlt da glaube ich eine globale Uebersicht...
Was ist also Cocoa?
Was ist Carbon?
Also Cocoa und Carbon sind sogenannte APIs oder auch Frameworks. Auf den Apple Seiten sind diese näher beschrieben, nur soviel. Cocoa ist das Native Framework für OS-X und beruht auf Objective-C, Carobon ist ein Framework, welches auf OS-X und OS 8-9 vorhanden ist. Dieses beruht auf C. Dann gibt es noch die Standard-Bibliotheken für C und C++, die sind natürlich auch unter OSX Ansprechbar, aber nur für sogenannte Komandozeilenprogramme. Diese Programme sind auch in der Regel Plattformübergreifend. Um aber sogenannte GUI-Programme zu schreiben mußt Du ein Framework verwenden, welches das auf der Plattform auch beherrscht, also z.B COCOA , CARBON, QT und Java auf Mac-OS-X, GTK und QT auf X11, also Linux ZB. Und Windows gibt es die MFC und .NET. Diese Frameworks stellen entsprechende Erweiterungen des Sprachstandards zur Verfügung die nur unter Verwendung eben dieses Frameworks funktionieren. Das alles ganz einfach ausgedrückt. Lese einfach die Informationen die Du unter den bereits genanten Links findest.:cool:
 
pdr2002 schrieb:
Dann gibt es noch die Standard-Bibliotheken für C und C++, die sind natürlich auch unter OSX Ansprechbar, aber nur für sogenannte Komandozeilenprogramme.

Leider muss ich das korrigieren: Die Standard-Biblotheken können einerseits selbstverständlich auch aus Carbon- und/oder Cocoa GUI-Programmen benutzt werden, aber auch Kommandozeilenprogramme können Cocoa oder Carbon nutzen.

Gruss

Alex
 
Zuletzt bearbeitet:
...dann mal rein ins vergnuegen...

vielen Dank fuer eure schnelle Hilfe und Erklaerungen (bin total "baff" wie schnell ihr antwortet)

Dann werde ich mich wohl in objective-C reinfuchsen...fuehle mich schon ein bisschen wie ein Kind im Spielzeugladen...

Wenn ich auf dem PC frueher Java-Programme geschrieben habe, hat mich immer geaergert, dass es im Grunde Moeglichkeit (wie in C++ z.B.) gab, die Klassen, Grafiken, etc. alle zusammen in eine ausfuehrbare Datei zu packen (eine exe o.ä.).. Das geht aber auch in OSX nicht oder?

Eclipse verwende ich schon lange fuer Java-Programmierungen/Applets, etc. Gibt es da ausser XCode eine Entsprechung fuer Objective-C?

vielen dank nochmal, bin echt ueberwaeltigt... :D
Gruesse

@wegus: ist dir der Titel fuer das Buch wieder eingefallen??
 
... kleine Nachtragsfrage...

Die Standard-Biblotheken können einerseits selbstverständlich auch aus Carbon- und/oder Cocoa GUI-Programmen benutzt werden, aber auch Kommandozeilenprogramme können Cocoa oder Carbon nutzen.

Verstehe ich das jetzt richtig, dass ich aus Cocoa-Programmen "normale" C++ klassen verwenden kann? Warum nutzt man dann ueberhaupt objective-C und nicht nur c++ klassen? *confused*

ich sollte mich wohl erstmal in das Thema richtig einarbeiten, dann muss ich euch nicht immer mit 1000en von Fragen nerven..
 
@silver:
Das Buch hab ich zu Hause, kann ich Dir also erst heut abend sagen!
Für Objective-C würde ich unbedingt XCode empfehlen, da hast Du ja auch den grafischen Interface-Builder um Dialoge und Fenster "zusammenzuclicken" auf Eclipse auszuweichen macht wenig Sinn. Für C++-Einsteiger taugt vielleicht auch folgender Wiki-Artikel:

http://www.macentwicklerwelt.net/index.php?title=Objective-C_f%fcr_Cpp_-_Programmierer

Der Artikel ist zu 50% das Resultat meiner Objective-C Lernerei die ich aufschrieb und zur anderen Hälfte ist der Artikel von Tom aus dem osxentwicklerforum!

Gruß Karsten
 
Da ist der Hillegass:

[ISBN]0321213149[/ISBN]
 
below schrieb:
Leider muss ich das korrigieren: Die Standard-Biblotheken können einerseits selbstverständlich auch aus Carbon- und/oder Cocoa GUI-Programmen benutzt werden, aber auch Kommandozeilenprogramme können Cocoa oder Carbon nutzen.

Gruss

Alex
Klar, ich wollte eigentlich nur Ausdrücken, das in der Standard-Bibliothek keine Gui-Steuerung enthalten ist, daher kann man nur ein Kommandozeilenprogramm erzeugen, wenn man ausschließlich die Standardbibliothek benutzt. Dieses Programm ist dann auch einfach portierbar auf andere Plattformen.:cool:
Sobald man aber auch auf COCOA-Klassen zugreift, war es das mit der Plattformunabhängikeit. :D
 
Plattformunabhaengigkeit...Win/OSX

Hallo,
ich habe noch eine Frage zur Plattformunabhaengigkeit...
Gibt es eine Moeglichkeit/Sprache, mit der man Programme schreiben kann, die unter Windows und OS X laufen, beziehungsweise die man relativ einfach umschreiben kann (also nur die GUI-Elemente oder aehnliches)?
Ich muesste die Programme die ich schreibe auch auf anderen computern laufen lassen koennen (und halt nicht nur Kommandozeilenmaessig)...
Ist dies mit objective-C moeglich?

Gruesse
 
silversurfer202 schrieb:
Hallo,
ich habe noch eine Frage zur Plattformunabhaengigkeit...
Gibt es eine Moeglichkeit/Sprache, mit der man Programme schreiben kann, die unter Windows und OS X laufen, beziehungsweise die man relativ einfach umschreiben kann (also nur die GUI-Elemente oder aehnliches)?
Ich muesste die Programme die ich schreibe auch auf anderen computern laufen lassen koennen (und halt nicht nur Kommandozeilenmaessig)...
Ist dies mit objective-C moeglich?

Gruesse
Nein, soweit ich weiß gibt es keine Implementierung mit der man Winows-GUIs mit ObjectiveC schreiben kann. Die beste Lösung hierfür ist Java. QT ist auf dem Mac noch nicht so ausgereift (meiner Erfahrung nach) und für Windows nicht mehr Kostenlos.:eek:
Realbasic ist noch eine Möglichkeit, aber auch hier mußt Du für Plattformunabhängigkeit die Pro Version nehmen.:cool:
http://www.application-systems.de/realbasic/detail.html
Dann gibt es glaube ich auch noch das GTK-Framework für Mac und Windows, aber das ist noch weniger ausgereift für Windows und glaube für Anfänger weniger geeignet.:rolleyes:
 
Es gibt da verschiedene Frameworks, zum Beispiel qt und wxWidgets. Diese Frameworks basieren alle auf C++. Über Lizenzkosten musst Du Dich mal informieren. Ich rate deshalb von qt ab weil eine kommerzielle Lizenz relativ teuer ist. Das heisst, wenn Du mit deinem qt Wissen dann mal Geld verdienen willst ist erstmal eine Investition angesagt.
Und dann gibt es natürlich noch Real Basic.

Das gesagt halte ich Platformunabhängigkeit für einen Mythos, jedenfalls wenn es denn etwas anspruchsvoller werden soll. Es muss immer noch jede Menge für die einzelnen Platformen angepasst werden, und wenn es nur ist, damit es nicht schrecklich aussieht.

Gruss

Alex
 
schade schade...

aergerlich aergerlich....
Wir brauchen halt fuer die uni C++ (Rescue Robots, sagt das jemandem etwas??)... ich hatte gehofft, dass ich mit c++ auch schicke programme fuer OSX schreiben koennte (und somit nur eine Sprache richtig neu lernen muesste die ich dann individuell anwenden koennte)...
Dieser Traum ist wohl ausgetraeumt, oder? (objective-c knan ich nur unter os x verwenden und mit c++ komme ich auf dem mac nicht weit??)
Von der "unausgereiftheit" von qt hatte ich schon gehoert und deswegen davon im Voraus abgesehen...

thx a lot fuer die Infos
 
Klar kann man auch schicke Programme in C++ für den Mac schreiben. Aber das Cocoa Framework wird dann schwierig. Es gibt auch das GNUStep Framework für Linux (Windows weiss ich nicht), das ist aber mehr schlecht als recht.

MetroWerks hatten mal ein güstiges Angebot für den "OS X only" Compiler, da ist dann auch das "PowerPlant" Framework dabei. Dinge ganz "per Hand" in Carbon zu machen ist etwas anstrengend, da Du das gesamte Event-Handling selber machen musst. Klar, früher hab ich das auch gemacht, aber da gab es auch nichts anderes ;)
Und rein vom akademischen Standpunkt könnte man sagen: Da lernst Du was bei!

Aber wo wir gerade bei akademischen Dingen sind: X11 ist dann da doch erste Wahl! Auf allen ordentlichen Betriebssystemen da, wird ordentlich weiterentwickelt etc.

Das sieht dann zwar nicht ganz aus wie eine normale Mac-App, hat aber diesen fetzigen old-school look. Und meine Frau sagt immer, "Retro" sei total in.

Abschliessend noch ein Zitat von Aaron Hillegass: "Programmers learn new languages all the time. Objective-C takes an afternoon to learn. If you are writing a Cocoa application, learning Objective-C is the least of your worries. Learning the frameworks that make up Cocoa will take much, much longer."

Das kann ich so unterschreiben, und solltest Du Informatik studieren dann müsstest Du das wissen ;)

Gruss

Alex
 
OK, wenn man also objective-C kann muesste man ja auch schnell C++ lernen koennen, richtig? Dann fange ich einfach mal mit obj-C an und schaue wie weit ich komme... Man wird sehen. Oder ist das irgendwie bloede??

PS: ich studiere nicht Informatik, jedenfalls nicht nur ;-) Der Studiengang heisst Cognitive Science und ist ne Mischung aus Informatik, Artificial Intelligence, Neuroinformatik, Neurobiologie, Mathe,.. etc.
 
Zurück
Oben Unten