私はLinux、Windows、Mac OSでコンパイルできるクロスプラットフォームコードを書いています。Windowsでは、ビジュアルスタジオとmingwをサポートする必要があります。
プラットフォーム固有のコードがいくつかありますが、これを#ifdef .. #endif
環境に配置する必要があります。たとえば、ここではwin32固有のコードを配置しました。
#ifdef WIN32
#include <windows.h>
#endif
しかし、どうすればLinuxとMac OSを認識できますか?使用すべき定義名(など)は何ですか?
3
こちらがOSマクロ定義リストです。
—
OCaml 2012
だまされた方がはるかによく受け入れられた答えを持っています。
—
rubenvb
提案された複製は同じ質問ではありません。この質問では、オペレーティングシステムの識別についてのみ質問しますが、この質問では、コンパイラの識別についても質問します。これは非常に異なることです。
—
JBentley 2014年
@JBentleyでも、受け入れられた回答ではコンパイラについては言及されておらず、OS(および1つの「プラットフォーム」)についてのみ言及しています。言うまでもなく、それは、だまされた人が何を提供しなければならないかに関して、ひどい答えです。
—
rubenvb 2015年
@rubenvb次に、他の質問をコメントとしてリンクします。それがより良い答えを持っているからといって、それを複製にしないでください。問題は、それが答えではなく、それが重複であるかどうかを決定するものです。これを閉じるだけで、コンパイラー関連の質問に対する質の高い答えが得られないことが保証されます。これは、いわゆる「重複」が答えることはできません。
—
JBentley、2015年