C++ compiling on Windows and Linux: ifdef switch [duplicate]
use:
#ifdef __linux__ //linux code goes here#elif _WIN32 // windows code goes here#else#endif
You can do:
#if MACRO0 //code...#elif MACRO1 //code...#endif
…where the identifier can be:
__linux__ Defined on Linux __sun Defined on Solaris __FreeBSD__ Defined on FreeBSD __NetBSD__ Defined on NetBSD __OpenBSD__ Defined on OpenBSD __APPLE__ Defined on Mac OS X __hpux Defined on HP-UX __osf__ Defined on Tru64 UNIX (formerly DEC OSF1) __sgi Defined on Irix _AIX Defined on AIX _WIN32 Defined on Windows
I know it is not answer but added if someone looking same in Qt
In Qt
https://wiki.qt.io/Get-OS-name-in-Qt
QString Get::osName(){#if defined(Q_OS_ANDROID) return QLatin1String("android");#elif defined(Q_OS_BLACKBERRY) return QLatin1String("blackberry");#elif defined(Q_OS_IOS) return QLatin1String("ios");#elif defined(Q_OS_MAC) return QLatin1String("osx");#elif defined(Q_OS_WINCE) return QLatin1String("wince");#elif defined(Q_OS_WIN) return QLatin1String("windows");#elif defined(Q_OS_LINUX) return QLatin1String("linux");#elif defined(Q_OS_UNIX) return QLatin1String("unix");#else return QLatin1String("unknown");#endif}