プリプロセッサマクロからプラットフォーム/コンパイラを識別するにはどうすればいいですか? 質問する

プリプロセッサマクロからプラットフォーム/コンパイラを識別するにはどうすればいいですか? 質問する

私は Linux、Windows、Mac OS でコンパイルできるクロスプラットフォーム コードを書いています。Windows では、Visual Studio と MinGW をサポートする必要があります。

プラットフォーム固有のコードがいくつかあり、それらを#ifdef .. #endifenvironment に配置する必要があります。たとえば、ここでは win32 固有のコードを配置しました。

#ifdef WIN32
#include <windows.h>
#endif

しかし、Linux と Mac OS をどのように認識すればよいのでしょうか? 使用すべき定義名 (またはその他) は何ですか?

ベストアンサー1

のためにマックOS:

#ifdef __APPLE__

のためにミンWWindowsの場合:

#ifdef __MINGW32__

のためにリナックス:

#ifdef __linux__

その他のWindowsコンパイラについては、このスレッドそしてこれ他のいくつかのコンパイラおよびアーキテクチャ用。

おすすめ記事