我想在 Windows 和 Linux 上编译并运行一份 C++ 代码。所以我需要使用条件编译(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
它编译错误!可能在 include
"Platform.h"
之前包含<windows.h>
会导致错误。