GNU/Linux >> Znalost Linux >  >> Linux

Kompilace C++ na Windows a Linux:přepínač ifdef

Vím, že to není odpověď, ale přidá se, pokud někdo vypadá stejně v Qt

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

Záleží na použitém kompilátoru.

Definice Windows může být například WIN32 nebo _WIN32 .

A definice Linuxu může být UNIX nebo __unix__ nebo LINUX nebo __linux__ .


Můžete:

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

…kde může být identifikátor:

    __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

použití:

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

#endif

Linux
  1. Jak získat přístup k souborovým systémům Linux ve Windows 10 a WSL 2

  2. Interoperabilita Windows a Linuxu:Pohled na Sambu

  3. Detekce Windows nebo Linuxu v C, C++

  1. Jak duální bootování Windows 10 a MX Linux

  2. Nova-agent (Linux) a agent Rackspace (Windows)

  3. Kali Linux 1.0.5 a softwarově definované rádio

  1. Zprovozněte a zprovozněte podman na Windows pomocí Linuxu

  2. Jak jsem pomohl mámě přejít z Windows na Linux

  3. Vytvořte SSH spojení mezi Windows a Linuxem