GNU/Linux >> LINUX-Kenntnisse >  >> Linux

C++-Kompilierung unter Windows und Linux:ifdef-Schalter

Ich weiß, es ist keine Antwort, aber hinzugefügt, wenn jemand in Qt dasselbe sucht

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
}

Das hängt vom verwendeten Compiler ab.

Beispielsweise kann die Windows-Definition WIN32 sein oder _WIN32 .

Und die Linux-Definition kann UNIX sein oder __unix__ oder LINUX oder __linux__ .


Sie können Folgendes tun:

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

…wo der Bezeichner sein kann:

    __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

verwenden:

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

#endif

Linux
  1. Zugriff auf Linux-Dateisysteme in Windows 10 und WSL 2

  2. Windows- und Linux-Interoperabilität:Ein Blick auf Samba

  3. So starten Sie Windows 10 und MX Linux dual

  4. Nova-Agent (Linux) und Rackspace-Agent (Windows)

  5. Kali Linux 1.0.5 und Software Defined Radio

So starten Sie Kali Linux und Windows 10 dual

So erstellen Sie einen TeamSpeak-Server unter Linux, Windows und macOS

So erstellen Sie einen Multiboot-USB in Linux und Windows

Umstieg von Windows auf Linux

So kompilieren und führen Sie C- und C++-Programme unter Linux aus

Freigabe von Dateien zwischen Linux Mint und Windows 10