PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apple / Mac Programmierung


Einfachkrank
2005-06-22, 19:28:55
Moin,

ich werde mir vorraussichtlich nächstes Jahr einen Apple kaufen und ich wollte fragen, ob jemand weiß wie sich das C++ Programmieren von Windows und OSX unterscheidet...
Also ob es dieselben Libs und Header sind, die man einbinden muss und ob sich die Standardfunktionen unterscheiden...

Will nämlich schon mit größeren Projekten anfangen, die ich dort später nicht großartig verändern möchte...

Bin mit jeder Art von Hilfe dankbar :)

MfG Einfachkrank

maximAL
2005-06-22, 19:36:47
windows-spezifische libs wirst du wohl kaum benutzen können, die standard lib ist und bleibt standard...

Ganon
2005-06-22, 21:05:54
Ja, fragt sich WAS du entwickeln möchtest. Terminal? Server? GUI? OpenGL? ? ? ?

ANSI C++ bleibt ANSI C++. Auch auf dem Mac.

Cocoa-Applikationen kannst du mit C++ z.B. nicht schreiben. Dazu musst du Java oder Objective-C(++) benutzen.

Windows-Header kannst du natürlich nicht verwenden, sofern du nicht über Wine programmierst. Aber ich denke, das weißt du, oder? ;)

Und da du nächstes Jahr sicherlich einen IntelMac kaufst, besteht auch das ByteOrder-Problem nicht.

Coda
2005-06-22, 22:47:05
Solang du cross-platform Libraries wie wxWidgets, Qt, OpenGL oder Boost einsetzt und dazu die STL ändert sich rein gar nichts.

Einfachkrank
2005-06-23, 17:36:44
Das ich kein Windows verwenden kann ist mir klar ;)

Ich meinte jetzt die Standard Bibliotheken, wie
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <fstream.h>
# include <vector>
// ...

Es soll eine Bibliothek für ein OpenGL Programm werden, aber ich programmiere zur Zeit mit glut und das läuft auch unter Mac...

maximAL
2005-06-23, 17:53:48
Ich meinte jetzt die Standard Bibliotheken, wie...
!!!!!
natürlich geht das. ist ja sinn der sache.

Ganon
2005-06-23, 18:03:56
Es soll eine Bibliothek für ein OpenGL Programm werden, aber ich programmiere zur Zeit mit glut und das läuft auch unter Mac...

Bei OpenGL ist es dann doch etwas anders.

Wenn du das native GLUT verwenden möchtest, dann musst du folgendes einbinden:

#include <GLUT/glut.h>

und bei OpenGL dann:

#include <OpenGL/gl.h>

Und dann mit "-framework OpenGL -framework GLUT" kompilieren.

Solltest du aber X11 verwenden, dann bleibt alles gleich, musst nur GLUT/X11 nachinstallieren.

Einfachkrank
2005-06-23, 19:30:34
Ahh cool. Danke!!!

Coda
2005-06-23, 19:56:03
#include <GL/gl.h> nicht #include <OpenGL/gl.h>

Ganon
2005-06-23, 20:01:58
#include <GL/gl.h> nicht #include <OpenGL/gl.h>

Ja. Nur wenn man das GLUT, bzw. OpenGL von OS X nutzen möchte, dann halt:

#include <GLUT/glut.h>
#include <OpenGL/gl.h>

Das ist in OS X so, weil es immer so geht:

#include <Framework/Header>

Und die Frameworks heißen in OS X nunmal OpenGL und GLUT. Wenn du dort <GL/gl.h> eingibst, dann sucht er nach dem Framework GL, welches es nicht gibt.

Das funktioniert nur, wenn du gegen X11 linkst. Dann funzt GL, da er in /usr/X11R6/include/GL die Header findet.

Coda
2005-06-23, 20:26:15
Das ist aber unschön, weil es eigentlich Standard ist dass man GL/gl.h benützt.

GLUT ist eh böse, sollte man eigentlich meiden.

Ganon
2005-06-23, 21:10:38
Das ist aber unschön, weil es eigentlich Standard ist dass man GL/gl.h benützt.

Tja, ist halt Pech. ;)

Da OS X sowieso anders als alle anderen ist, stört das nicht wirklich. ;)

Shink
2005-06-24, 09:05:53
Wie gut/schlecht funktioniert eigentlich JOGL für MacOS?

Einfachkrank
2005-06-24, 16:29:45
Was für Alternativen gibt es denn unter Mac OS X in Sachen OpenGL Programmierung?

Ganon
2005-06-24, 16:44:39
Was für Alternativen gibt es denn unter Mac OS X in Sachen OpenGL Programmierung?

Du meinst, welches Fenster-Managment?

Öhm, eigentlich alles was du willst. Sogar Windows, über DarWINE, seit neustem. ;)

Da wäre:

- Cocoa
- Carbon
- GTK
- Qt
- wxWidgets
- X11
- ach, eigentlich fast alles was es so gibt. ;)

Coda
2005-06-25, 00:22:00
Tja, ist halt Pech. ;)

Da OS X sowieso anders als alle anderen ist, stört das nicht wirklich. ;)Das ist von Linux nach Windows genauso anders wie von OS X zu Windows - deshalb braucht man noch lange nicht sinnlos den Headerpfad ändern. Ein unnötiges #ifdef mehr im Code...

Immer diese Mac Leute mit dem "anders". Apple kocht auch nur mit Wasser.

Ganon
2005-06-25, 00:30:22
Immer diese Mac Leute mit dem "anders". Apple kocht auch nur mit Wasser.

Hehe... ;)

Vielleicht wurde es auch gemacht, um <GL/gl.h> für X11 zu belassen, oder was auch immer. Es ist jetzt nunmal halt so. ;) Da braucht man sich jetzt nicht darüber aufzuregen. ;)

HellHorse
2005-06-25, 00:58:28
Immer diese Mac Leute mit dem "anders". Apple kocht auch nur mit Wasser.
Ja, wenn sich Micro$~1 wieder mal nicht an Standards hält wird es von eben diesen Mac Usern angegriffen, die Apples ignorieren von Standards verteidigen.
Ist so. Schliesslich ist Micro$~1 pöse und Apple liep.

Ganon
2005-06-25, 01:25:45
Ja, wenn sich Micro$~1 wieder mal nicht an Standards hält wird es von eben diesen Mac Usern angegriffen, die Apples ignorieren von Standards verteidigen.
Ist so. Schliesslich ist Micro$~1 pöse und Apple liep.

Wer hält sich denn schon an Standards? Nicht mal Linux-Distributionen halten sich 100% an alle Linux-Standards.

Und wie gesagt. Der "Standard" ist drinnen. Wenn du eine Standard-Anwendung hast, dann wird diese auch mit <GL/gl.h> kompilieren.