C++ compiling on Windows and Linux: ifdef switch [duplicate] C++ compiling on Windows and Linux: ifdef switch [duplicate] windows windows

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}