При написании программ бывают случаи, когда нужно воспользоваться платформа зависимым кодом. При компиляции программы под другой платформой возникнут ошибки из-за отсутствия нужных библиотек и функций. Для предотвращения таких ошибок нужно использовать условные разветвления для выполнения платформа зависимого кода.
В Qt существуют несколько часто использованных определений. К таким определениям можно отнести:
Q_OS_WIN
Определенна для платформ Windows. Можно разделить на Q_OS_WIN32 и Q_OS_WIN64.
Q_OS_UNIX
Определенна для платформ UNIX.
Q_OS_LINUX
Определенна для платформ LINUX.
Q_OS_FREEBSD
Определенна для платформ FREEBSD.
Q_OS_MACX
Определенна для платформ MAC.
При совпадении платформы данные переменные будут идентифицированы. Данные определения можно использовать в связке #ifdef, #else, #endif.
Пример использования:
#ifdef Q_OS_WIN #include <windows.h> #endif
Полный список определений находится в файле qsystemqdetection.h.