Hallo,
das Thema "plattformübergreifende Entwicklung" wird tatsächlich stiefmütterlich behandelt.
Du brauchst zunächst einen Compiler, der für alle Zielplattformen zu bekommen ist. Das sollte für C bzw. C++ nicht das Problem sein. Du entwickelst das Programm dann z.B. auf dem Mac und übersetzt Dein Programm in ein für den Mac zu nutzendes Programm. Den Code kannst Du dann auch z.b. unter Windows einsetzen und in ein dort lauffähiges Programm übersetzen. Das Ergebnis dieser Übersetzungen (.exe bzw. app) ist dann an die jeweilige Plattform gebunden - die eigentliche Arbeit (= der Code) ist übergreifend nutzbar.
Da Du nicht bei Adam und Eva anfangen willst, brauchst Du Bibliotheken, die Du in Deine Programme einbinden kannst. Das ist für Standardbibliotheken (z.B. für mathematische Routinen) nicht das Problem - die gehören zumeist zum Lieferumfang des jeweiligen Compilers.
Der Kern des Problems liegt bei der grafischen Benutzeroberfläche und den vielen Hilfsroutinen (für das Datenmanagement, Audio- und Videowiedergabe, Datei- und Netzwerkzugriffe, ...). Sowohl Windows wie auch Mac OS X liefern für den Programmierer viele solcher Bibliotheken mit. Sie erleichtern das Programmieren - aber nur auf dem System, für das sie geschrieben wurden.
Eine Lösung sind die Qt-Bibliotheken, die hier ja schon mehrfach angesprochen wurden. Mit ihrer Hilfe lassen sich viele Probleme prinzipiell lösen. Ein gutes Beispiel, was machbar ist, bieten OpenOffice (ohne Eingriffe in den Code, jedoch unter X11) bzw. NeoOffice (die Benutzeroberfläche wurde in Java auf dem Mac entwickelt; der Kern stammt direkt aus dem OpenOffice-Projekt) und z.B. Gimp - die Bildbearbeitung aus der Linux-Welt.
Eine andere Lösung sind Programmierumgebungen, die von Hause aus für verschiedene Plattformen entwickelt wurden. Mir ist da z.B.
RealBasic bekannt - habe aber keine praktischen Erfahrungen damit.
Eine weitere Lösung ist Java bzw. .NET. Java hat inzwischen ein Entwicklungsstadium erreicht, in dem tatsächlich unternehmenskritische Anwendungen plattformübergreifend entwickelt werden können. Auch hier steckt der Teufel im Detail - doch es funkt. Ich habe praktische Erfahrungen mit NetBeans 5.0 und Java 1.4.x in Zusammenarbeit mit MySQL auf Mac OS X und Windows. Das funktioniert grundsätzlich problemlos. Kleinere Ungereimtheiten tauchen bei der Gestaltung der grafischen Oberfläche auf - es sind bei mir jedoch nur optische Mängel, die Funktionalität ist ohne Einschränkung. .NET bzw. C# ist nach meinem Eindruck auf dem Mac (wie unter Linux und anders als unter Windows) noch in einem frühen Experimentierstadium. Praktische Erfahrungen in einem größeren Projekt habe ich jedoch nicht.
Hoffe, diese grundsätzlichen Hinweise helfen Dir ein wenig weiter.
Peter