Определение макроса в кроссплатформенном - PullRequest
1 голос
/ 03 июля 2010

При разработке различных платформ (Android, iPhone, Mac, Windows и т. Д.), Необходима разная обработка (# ifdef / # endif) в зависимости от определения платформы.Но я не знаю исходного определения в Mac / iPhone / Android.

Windows: WIN32 (Visual C ++)

Mac: __MAC_NA (?) (XCode)

iPhone / iPad / iPod: __IPHONE_NA (?) (XCode)

Android: ??(AndroidNDK)

По какому определению я должен делить?

Ответы [ 3 ]

4 голосов
/ 03 июля 2010

Я считаю, что для iPhone это TARGET_OS_IPHONE, а для Android - ANDROID. Я не слишком знаком с Apple-специфическими вещами, но после осмотра я нашел большой список для тонны ОС, которые определяют здесь . Есть еще один ответ на SO, у которого есть метод для извлечения определений, найденный здесь

4 голосов
/ 03 июля 2010

Вы всегда можете наверстать упущенное для своих проектов, освобождая себя от компилятора / платформы defines.

  • Android: #define PLATFORM_ANDROID
  • Iphone: #define PLATFORM_IPHONE
  • и т.д.

И все сборки включают файл конфигурации, который определяет один из этих макросов в данном проекте и который должен работать по всем направлениям. Если вы используете Visual Studio, вы можете просто определить их в настройках проекта, даже не нуждаясь в файле конфигурации.

2 голосов
/ 03 июля 2010

Android NDK использует определение ANDROID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...