Хотите перечислить макросы Xcode и символы препроцессора для iOS (и Mac) - PullRequest
3 голосов
/ 06 августа 2011

Сейчас я разрабатываю приложение для Mac OS и для iOS. Я хотел бы иметь возможность делать блоки, такие как

#ifdef __IOS__
(stuff)
#endif

но также для определенных версий Mac / iOS и аппаратных конфигураций. Я обнаружил, что

clang -dM -E - < /dev/null

и

clang -x c++ -arch armv7  -dM -E - < /dev/null

выводит некоторую полезную информацию, но это явно не все символы, с которыми нам приходится работать. По какой-то причине установка -dM в качестве флага компилятора в настройках проекта не работает (например, нет никакого дополнительного вывода) ни с помощью команды build в xcode, ни с помощью xcodebuild в командной строке.

Какие-нибудь советы?

Спасибо, Jon

1 Ответ

6 голосов
/ 06 августа 2011

Вы можете найти полезными Availability.h и AvailabilityInternal.h , которые определяют всевозможные символы препроцессора, установленные компилятором для различных конфигураций оборудования, включая номера версий для iOS и Mac OS. и как их использовать:

http://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/Availability.h http://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/AvailabilityInternal.h

Вы можете использовать сочетание клавиш Xcode Cmd + Shift + O , чтобы посмотреть последние / бета-версии iOS.

Другим полезным определением является TARGET_IPHONE_SIMULATOR для определения, компилируется ли для симулятора iOS.

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