Hallo Marc,
der Grund warum die meißten Programme nur für eine Plattform entwickelt werden ist nicht weil man das Programm auf beiden Plattformen kompilieren müsste, sondern das nicht jede Library auf jeder Plattform funktioniert.
Beispiel 3D-Spiele:
Es gibt 2 große APIs (Application Programming Interface) für 3D-Spiele. DirectX und OpenGL, DirectX funktioniert nur auf Windows. Wer ein Spiel in DirectX entwickelt kann es also nur an Windows-Benutzer verkaufen. Für Benutzer anderer Plattformen müsste er es unter Verwendung von OpenGL komplett neu entwickeln.
Der Grund warum nur wenige Spiele SDL verwenden ist, dass DirectX bereits Möglichkeiten für Sound und Eventhandling beinhaltet, man hat also alle Funktionen die SDL bietet bereits. Unter den Spielen, die OpenGL verwenden sind dagegen auch viele dabei die SDL für die Sachen nutzt, die OpenGL nicht bietet.
Die Wahl ist also entweder DirectX (evtl. mit WinAPI oder MFC) oder OpenGL mit SDL (bzw. andere Libraries, die ähnliche Funktionen bereitstellen), wenn man plattformunabhängig bleiben will.
Gruss,
OhneName