Я пишу кросс-платформенный код, который должен компилироваться в Linux, Windows, Mac OS. В окнах я должен поддерживать визуальную студию и mingw.Как определить платформу/компилятор из макросов препроцессора?
Есть некоторые части кода, специфичного для платформы, который я должен разместить в среде #ifdef .. #endif
. Например, здесь я разместил конкретный код win32:
#ifdef WIN32
#include <windows.h>
#endif
Но как узнать Linux и Mac OS? Что определяет имена (или т. Д.), Которые я должен использовать?
Обман имеет гораздо более приемлемый ответ. – rubenvb
Предлагаемый дубликат - это не тот же вопрос. Этот вопрос спрашивает только об идентификации операционной системы, тогда как этот вопрос также задает вопрос об идентификации компилятора, что совсем другое. – JBentley
Здесь [список макросов Mac OS] (http://sourceforge.net/p/predef/wiki/OperatingSystems/). – OCaml