Подтвердить что ты не робот

Как включить различные заголовки на основе ОС?

Я пишу переносное приложение на С++. Как включить различные заголовки на основе операционной системы. Есть ли способ сделать это на С++ или мне нужно использовать систему сборки?

4b9b3361

Ответ 1

с препроцессором:

#ifdef _SUNOS
//code
#elseif _LINUX
//code
#elseif _HPUX
//code
#elseif _WIN32
//code
#else
#error OS not supported
#endif

Ответ 2

Я бы использовал директивы препроцессора и кросс-платформенную систему сборки, такую ​​как CMake. Вы можете сделать:

#ifdef LINUX
#include <unistd.h>
#elif defined(WINDOWS)
#include <algorithm.h>
# elif Defined(MAC_OSX)
//... etc.
#else
#error No operating system defined
#endif

Затем добавьте соответствующий флаг препроцессора в сборку, например: -DLINUX.

Ответ 3

Мы разрабатываем Linux (Red Hat Enterprise 5), Sun (Solaris) и Windows. Наша система должна использовать что-то вроде этого:

#ifndef MSWINDOWS
#include <unistd.h>
#else
#include <winbase.h>
#endif
//More includes here