GNU/Linux >> Tutoriels Linux >  >> Linux

Compilation C++ sous Windows et Linux :commutateur ifdef

Je sais que ce n'est pas une réponse mais ajouté si quelqu'un a la même apparence dans Qt

En 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
}

Cela dépend du compilateur utilisé.

Par exemple, la définition de Windows peut être WIN32 ou _WIN32 .

Et la définition de Linux peut être UNIX ou __unix__ ou LINUX ou __linux__ .


Vous pouvez faire :

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

…où l'identifiant peut être :

    __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

utiliser :

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

#endif

Linux
  1. Interopérabilité Windows et Linux :un regard sur Samba

  2. Comment effectuer un double démarrage de Windows 10 et de MX Linux

  3. Agent Nova (Linux) et agent Rackspace (Windows)

  4. Kali Linux 1.0.5 et radio définie par logiciel

  5. Détecter Windows ou Linux en C, C++

Comment double-booter Kali Linux et Windows 10

Comment créer un serveur TeamSpeak sous Linux, Windows et macOS

Comment créer une clé USB multiboot sous Linux et Windows

Passer de Windows à Linux

Comment compiler et exécuter des programmes C, C++ sous Linux

Partage de fichiers entre Linux Mint et Windows 10