что подразумевает macosx-version-min?

Когда я передаю флаг компилятора -mmacosx-version-min=10.5, что это означает? я думаю, что это подразумевает, что двоичный файл результата является x86, не PPC, но является этим 32 бита или 64 бита? Я компилирую на снежном барсе, таким образом, выходной двоичный файл по умолчанию составляет 64 бита. Я не являюсь передающим -universal, это не 32bit-64bit универсальный двоичный файл, я думаю.

25
задан Devid Farinelli 22 November 2016 в 07:55
поделиться

2 ответа

Этот параметр будет использоваться различными макросами доступности, помещенными в заголовки. Это означает, что вам может потребоваться минимальная версия ОС, даже если у вас более поздняя версия SDK (т. Е. Таргетинг 10.5 с SDK 10.6). Использование API 10.6 при нацеливании на 10.5 вызовет предупреждение, и API будет связан с атрибутом weak_import.

Большинство заголовков API Apple содержат макросы доступности для каждого класса, методов, функций или перечислений, чтобы объявить для каждого из них:

  • Минимальная поддерживаемая ОС
  • Устаревшая
  • Недоступность
  • .. .

Макросы выглядят так:

  • AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
  • AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED
  • ...

Что касается архитектуры доступных в SDK архитектур, это зависит только от двоичных файлов. Например, с 10.5 SDK вы можете настроить таргетинг на четыре архитектуры (Intel / 32 бит, PowerPC / 32 бит, Intel / 64 бита, PowerPC 64 бита), а с 10.6 SDK, вы можете настроить таргетинг только на три архитектуры (Intel / 32 бит, PowerPC / 32 бит, Intel / 64 бит).

Поскольку вы используете Snow Leopard, вы можете настроить таргетинг на i386 (Intel / 32 бит), ppc (PowerPC / 32 бит) или x86_64 (Intel / 64 бит) очень просто, передав такой вариант архитектуры:

gcc -arch i386

или подобный этому (для проектов на основе конфигурации):

CFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure
20
ответ дан 28 November 2019 в 21:03
поделиться

Это вызывает предупреждения компилятора для методов, появившихся после Mac OS X 10.5. Это не имеет никакого отношения к архитектуре.

4
ответ дан 28 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: