C++ für Windows und Mac?
-
Hallo,
ich hoffe, ich hab mich hier mit meiner Frage richtig eingeordnet?!
Eine grundsätzliche Frage: Kann man mit C++ Programme schreiben, die sowohl unter Windows und auch unter Mac laufen? Ich denke, Java wäre da doch die Sprache der Wahl, oder? Oder geht das auch mit C++?Grüße
tupan
-
tupan schrieb:
Hallo,
ich hoffe, ich hab mich hier mit meiner Frage richtig eingeordnet?!
Eine grundsätzliche Frage: Kann man mit C++ Programme schreiben, die sowohl unter Windows und auch unter Mac laufen? Ich denke, Java wäre da doch die Sprache der Wahl, oder? Oder geht das auch mit C++?Grüße
tupan
Solange du keine Plattformspezifischen, also externen, Bibliotheken nimmst, wird alles funktionieren. Jedoch reicht die stdlib meist nicht aus.
Achja: Finger weg von inline asm, das ergibt meist unportablen code
-
Ja das geht, du musst den Code nur auf jeder Plattform neu kompilieren (d.h. 1x auf Mac compilieren und 1x aufm PC compilieren) und du darfst halt keine Bibliotheken verwenden, die's nur auf 1 Plattform gibt (also z. B. keine WinAPI, weil die gibts unter MAC nicht, und kein Cocoa, weil das gibts unter Windows nicht0.
-
Hallo,
danke erst einmal für die Antwort. Im Mac Umfeld kenn ich mich noch gar nicht aus, aber das merkt man mir sicher an, gell?!
Wenn du sagst, grundsätzlich kann man mit C++ entwickeln, ohne neu für die jeweilige Plattform, also Win oder Mac, kompilieren zu müssen, wie sieht denn das konkret aus? Welcher Kompiler, sprich, welche IDE kommt da am besten zum Einsatz. Das ist ja unter Windows schon so eine Sache, ob ich mit der MFC oder mit der Biblio von Borland programmiere. Und wenn wir von einigermaßen hochwertigen Programmen sprechen, kommt es da nicht unweigerlich zu Konflikten ob der verschiedenen Bibliotheken?Grüße
tupan
-
tupan schrieb:
Wenn du sagst, grundsätzlich kann man mit C++ entwickeln, ohne neu für die jeweilige Plattform, also Win oder Mac, kompilieren zu müssen, wie sieht denn das konkret aus?
Das hat hier niemand behauptet!
Ein kleiner Stolperstein wäre noch, dass die älteren PowerPC Macs die Zahlen anders darstellen, als Intel Prozessoren.
Such mal nach Little und BigEndian. Das macht sich z.B. beim lesen von Daten aus Dateien und der Arbeit mit Sockets bemerkbar.
-
Hallo,
also ich denke, C++ ist denkbar ungeeignet, um Programme zu schreiben, die auf Win UND Mac laufen, oder? Das ist doch das Konzept von sprachen wie Java, die eine virtuelle Maschine voraussetzen, dann aber auf der jeweiligen Plattform laufen, auf der sie installiert ist.
Wie sähe denn konkret eine solche Entwicklug in C++ aus? Ich habe gelesen, es gäbe die IDE XNode für Mac. Wäre es möglich, damit Programme zu schreiben, die auch unter Windows laufen bzw. lässt sich so ein Programm für Windows kompilieren?Grüße
tupan
-
Wenn dir von vornherein klar ist, dass du für verschiedene Plattformen entwickelst, dann lerne Java, ja.
-
tupan schrieb:
Hallo,
also ich denke, C++ ist denkbar ungeeignet, um Programme zu schreiben, die auf Win UND Mac laufen, oder?
Denkbar ungeeignet? Nein, C++ ist dazu sehr wohl geeignet, wenn du weisst worauf du achten musst. Dass andere Sprachen besser geeignet sind, ist eine andere Sache.
Wie sähe denn konkret eine solche Entwicklug in C++ aus? Ich habe gelesen, es gäbe die IDE XNode für Mac. Wäre es möglich, damit Programme zu schreiben, die auch unter Windows laufen bzw. lässt sich so ein Programm für Windows kompilieren?
Die IDE hat nix damit zu tun wo die Programme spaeter laufen werden.
Wenn du sagst, grundsätzlich kann man mit C++ entwickeln, ohne neu für die jeweilige Plattform, also Win oder Mac, kompilieren zu müssen, wie sieht denn das konkret aus?
Das hab ich nie gesagt. Du musst fuer jede Plattform neu kompilieren. Aber mehr auch nicht.
Welcher Kompiler, sprich, welche IDE kommt da am besten zum Einsatz. Das ist ja unter Windows schon so eine Sache, ob ich mit der MFC oder mit der Biblio von Borland programmiere. Und wenn wir von einigermaßen hochwertigen Programmen sprechen, kommt es da nicht unweigerlich zu Konflikten ob der verschiedenen Bibliotheken?
Es kommt nicht auf die IDE drauf an. Wenn du sauberes C++ programmierst kommts auch nicht auf den Compiler drauf an, weil jeder Compiler sich halbwegs an den ISO-Standard haelt. Anbieten wuerd sich logisch der gcc, weil das der Standardcompiler unter Mac ist, und er auch fuer Windows verfuegbar ist.
Es kommt vor allem auf die verwendete Bibliothek drauf an. Du musst eine Bibliothek verwenden, die es sowohl auf dem PC als auch auf dem Mac gibt. Spontan fallen mir da wxWidgets und Qt als GUI-Bibliotheken ein. Das werden wohl auch die meistverwendetsten sein (Adobe z. B. verwendet IIRC Qt, damit ihre Programme auf Mac und auf dem PC laufen).
-
Hallo,
wxWidgets und Qt..aha..also die Programmierung der Oberflächen, gell?! Okay, ich werd mich dahingehend mal schlau machen.
Übrigens, meine Frage nach der IDE, ich weiss schon, dass es nicht von der IDE abhängt, ich meinte mit IDe auch eigentlich die zugrundeliegende Bibliothek.Grüße
tupan
-
die bevorzugten sprachen für mac entwicklung sind vor allem objective-c und java, aber nicht c++, das wurde von apple schon lange verbannt. wenn du mac programme entwickeln willst: objective-c. wenn die auch unter windows laufen sollen dann nimm java, es sei denn du hast zu viel zeit
-
Du machst es nicht besser ...
Nicht jede IDE hat eine tolle Bibliothek, die nur bei ihr dabei ist. Die ganzen auf der GCC bzw MinGW aufsetzenden IDEs zum Beispiel nicht.
-
ich du er sie es schrieb:
die bevorzugten sprachen für mac entwicklung sind vor allem objective-c und java, aber nicht c++, das wurde von apple schon lange verbannt.
Achso, deswegen hat Apple Objective-C++ entwickelt, um mit C++ die ganzen Objective-C APIs anzusteuern?
-
objective-c++ is nich von apple
-
tupan schrieb:
...
Wenn du sagst, grundsätzlich kann man mit C++ entwickeln, ohne neu für die jeweilige Plattform, also Win oder Mac, kompilieren zu müssen...tupan schrieb:
Hallo,
also ich denke, C++ ist denkbar ungeeignet, um Programme zu schreiben, die auf Win UND Mac laufen, oder? ...
Irgendwie sieht es nicht so aus, als ob Dich die Antworten hier wirklich interessieren.Macht ja nichts .... aber dann stell' doch auch keine Fragen und behaupte hinterher nicht, das C++-Forum " ... hätte das ja auch so gesehen ...".
Übrigens: Mein Kollege hier am Tisch entwickelt gerade ein plattformunabhängiges Programm auf dem MAC für MAC, PC, AIX und Linux .... in C++ (obwohl er Java kann) - könnte ein Hinweis darauf sein, dass es möglich ist.
Sein PG hat zwar keine GUI, aber das war ja auch nicht die Frage:tupan schrieb:
...Kann man mit C++ Programme schreiben, die sowohl unter Windows und auch unter Mac laufen? Ich denke, Java wäre da doch die Sprache der Wahl, oder? Oder geht das auch mit C++?...
Dieser Kollege würde sagen (und ich bin geneigt, mich dem anzuschließen): Ja !
Gruß,
Simon2.
-
Mein Bruder entwickelt recht erfolgreich Plugins für Cinema4D (Plugin kostet bei ihm 400 EUR!). Nun, er hat weniger C++-Erfahrung als ich (eigentlich ist er 3D-Grafiker), ich habe ihn aber an C++ herangeführt. Nun, C4D gibt es für Windows und Mac. Vor nicht allzulanger Zeit hat er seine Plugins ausschliesslich unter Windows entwickelt (weil kein Mac im Haus). Und für die Mac-Variante, hat er Crosscompiling gemacht! D.h. er hatte keinen Mac zur Verfügung! Er hat sozusagen im Blindflug die Mac-Varianten compiliert und dann seinen Mac-Kunden zum Testen geschickt. Hat auch meistens gut funktioniert!
Mittlerweile hat er sich einen gebrauchten G4-PowerMac gekauft und kompiliert darauf die Universal-Binaries (also für PPC und Intel). Entwickeln tut er weiterhin unter Windows. Testen kann er unter Mac jetzt selber.
Das beweist, das man das ganze sehr wohl hinkriegen kann. Natürlich muß man aufpassen was man macht. Aber es sind einfach nur ein paar Grundregeln einzuhalten. Und wenn man doch Bit-Spielerein macht, muß man sich halt dafür eine Variante für PPC und eine für Intel schreiben. Fertig.
-
Artchi schrieb:
...Natürlich muß man aufpassen was man macht....
... und das gilt IMMER für plattformübergreifendes Entwickeln.
Gruß,
Simon2.