私はGBA用の自作ゲームを開発中で、PCに移植することを考えていました(おそらくSDLを使用しています)。 以前はマルチプラットフォームのサポートの問題に取り組んでいなかったので、私は実際に経験がありません。マルチプラットフォームのサポート、プリプロセッサ、または個々のライブラリとのリンク
2つの可能な方法が出てきましたが、どちらも欠点があります。欠けている解決策があるかどうかはわかりません。
まず、プリプロセッサを使用します。ヘッダーファイルは#define GBA
となるすべてのファイルに含まれ、定義されているかどうかに基づいて適切なヘッダーがインクルードされ、適切なプラットフォーム固有のコードがプラットフォーム用にコンパイルされます。私はそれを私はここを参照してください欠点は大規模なプロジェクトのためにある
/* GBA definition is in platform.h */
/* Example.c */
void example()
#ifdef GBA
{
/* GBA specific implementation goes here */
}
#else
{
/* PC specific implementation goes here */
}
#endif
のようなものを実装し
、これは非常に厄介と率直種類の醜いと読みが難しいことができます。
私が考えることのできる別の選択肢は、各プラットフォーム用の静的ライブラリを作成することです。したがって、両方のプラットフォームの主なソースコードは同じになり、同時開発が容易になり、GBAやPC用にビルドする場合は、適切なライブラリと設定が指定されます。
明白な欠点は、ライブラリに何かの実装が変更される必要がある場合、何かを追加する必要がある場合、または実際にライブラリに関して何かが必要な場合、維持して再構築する必要があるということです。主な実際のプログラムと一緒に。
これにアプローチするより良い方法があれば、それは何でしょうか? 私が言及した方法がそれを行う標準的な方法である場合、これはより長期的な開発のためのより一般的な/より良いですか?
移動図書館溶液で:ここで
はSDLコードです。長期的には、より保守的になるでしょう。 –