Возможно ли обнаружение ОС с помощью GLib?

Можно ли определить, на какой платформе (GNU/Linux, Win32, OS X) запущено мое приложение Vala?

1 ответ

Решение

Поскольку Vala является компилируемым языком (в отличие от промежуточного или интерпретируемого), вы можете определить платформу, используя ваш любимый инструмент сборки, и использовать условную компиляцию.

Что-то вроде:

#if WINDOWS
    message ("Running on Windows");
#elif OSX
    message ("Running on OS X");
#elif LINUX
    message ("Running on GNU/Linux");
#elif POSIX
    message ("Running on other POSIX system");
#else
    message ("Running on unknown OS");
#endif

Инструмент для сборки должен был пройти -D LINUXи т. д. компилятору.

Я был бы осторожен и делал что-то подобное только в крайнем случае, потому что это может иметь неприятные последствия. Обычно лучше использовать кроссплатформенные библиотеки, которые уже обрабатывают различия для вас.

Кстати: смотрите также, как это делается в C++.

Другие вопросы по тегам