Windows と Linux で C++ コードの 1 つのコピーをコンパイルして実行したいと考えています。そのため、条件付きコンパイル (CC) を使用する必要があります。ただし、大量のコード ファイルで CC を使用するにはどうすればよいかという問題に遭遇します。
など、私は持っています:
//A.cpp
#define _WINDOWS_
#ifdef _WINDOWS_
#include <windows.h>
//some code for windows
#else
#include <pthread.h>
//some code for linux
#endif
私はB.cpp、C.cppも持っています...
すべてのファイルに「#define _WINDOWS_」を書くべきですか、それとももっと良い方法がありますか?
そして、私はこのようにしようとしました:
ヘッド ファイル Platform.h を作成します。
#ifndef _PLAT_ #define _PLAT_ #define _WINDOWS_ #endif
次のように、Platform.h ファイルをインクルードします。
//A.cpp #include "Platform.h" #ifdef _WINDOWS_ #include <windows.h> //some code for windows #else #include <pthread.h> //some code for linux #endif
エラーでコンパイルされます!含める
"Platform.h"
前に含める<windows.h>
と、エラーが発生する可能性があります。