如何根据我的操作系统包含不同的标题?

ros*_*vid 13 c++ portability cross-platform multiplatform

我正在编写一个可移植的C++应用程序.如何根据运行的操作系统包含不同的标头.有没有办法在C++中执行此操作,还是必须使用构建系统?

Bla*_*ear 11

与预处理器:

#ifdef _SUNOS
//code
#elseif _LINUX
//code
#elseif _HPUX
//code
#elseif _WIN32
//code
#else
#error OS not supported
#endif
Run Code Online (Sandbox Code Playgroud)


Pet*_*ete 8

我会使用预处理器指令和跨平台构建系统,如CMake.你可以这样做:

#ifdef LINUX
#include <unistd.h>
#elif defined(WINDOWS)
#include <algorithm.h>
# elif Defined(MAC_OSX)
//... etc.
#else
#error No operating system defined
#endif
Run Code Online (Sandbox Code Playgroud)

然后将相应的预处理程序标志添加到构建中,例如:-DLINUX.