SDLを使用している場合、答えは「最後のステップまで、希望に近づくことができます」です。単一のコードベースでゲームのようなプログラムを作成し、そのコードベースをさまざまなマシンに取り込んでコンパイルし、動作させることができるのは、まさに Simple DirectMedia Library が設計された目的です! 少なくともこれを妥当な目標にしなければ、あまり人気が出ないでしょう。
だからといって、ボタンを押して Visual Studio から Macintosh または Linux のバイナリ パッケージを取得できるわけではありません。しかし、いつでも友達を見つけて、コードベースでコンパイルを試してみるように頼むことができます. 標準 C++ ライブラリからのみ関数を呼び出し、SDL が提供するボックス内に留まるように注意している限り、正常にコンパイルされるはずです...理論的には.
2018 の更新: - Mac でコンパイルしたいが Mac がない場合、Travis-CI は仮想化された OS Xを備えているため、clang を実行して実際に結果のバイナリをどこかにアップロードできます。変更を加えるたびに、ネットワーク経由で完全なビルドが行われるのを待ちたくないでしょう...しかし、OS X でクロスプラットフォームのコードベースのビルドを取得すると、継続的インテグレーションによってそれを確実に維持できます。
C++ では、他の言語よりも「移植性のサンドボックス」内にとどまることを確認するのが難しい場合があります (特に初心者の場合)。また、特に Microsoft ツールを対象としたチュートリアルに従っている場合は、ドキュメントで Windows のみの呼び出しを行うようにアドバイスすることにほとんど問題がないため、難しい場合があります。したがって、「完全にデバッグされた」コードを友人に渡し、コンパイルして新しいプラットフォームで初めて動作させることができる可能性は低くなります。
確かに、テスト期間が必要です。そして、XCode などでコンパイルして基本が機能していることを他の誰かに確認してもらうために、土壇場まで待つべきではないでしょう。代わりに GCC コンパイラを使用することで、移植性のないコードを書くリスクを下げることができます。これは、実際にはクロス プラットフォームではない依存関係を持ち込むと、問題が発生する可能性が高くなります。
エッジでの生活が好きなら、 「Hackintosh」仮想マシンを実行することも可能かもしれません. Linux VM を作成し、その下でビルドを試すことができます。それが機能する場合、Mac ビルドも機能するという確信が高まります。保証はしませんが。