GNU/Linux >> Linux Esercitazione >  >> Linux

Compilazione C++ su Windows e Linux:ifdef switch

So che non è una risposta, ma è stata aggiunta se qualcuno ha lo stesso aspetto 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
}

Dipende dal compilatore utilizzato.

Ad esempio, la definizione di Windows può essere WIN32 o _WIN32 .

E la definizione di Linux può essere UNIX o __unix__ o LINUX o __linux__ .


Puoi fare:

#if MACRO0
    //code...
#elif MACRO1
    //code...
#endif

…dove l'identificatore può essere:

    __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

usa:

#ifdef __linux__ 
    //linux code goes here
#elif _WIN32
    // windows code goes here
#else

#endif

Linux
  1. Come accedere ai filesystem Linux in Windows 10 e WSL 2

  2. Interoperabilità Windows e Linux:uno sguardo a Samba

  3. Come eseguire il dual boot di Windows 10 e MX Linux

  4. Agente Nova (Linux) e Agente Rackspace (Windows)

  5. Kali Linux 1.0.5 e Software Defined Radio

Come eseguire il dual boot di Kali Linux e Windows 10

Come creare un server TeamSpeak su Linux, Windows e macOS

Come realizzare una USB multiboot in Linux e Windows

Passaggio da Windows a Linux

Come compilare ed eseguire programmi C, C++ in Linux

Condivisione di file tra Linux Mint e Windows 10