Странный вопрос после обновления до iOS 4.1 SDK
Я обновил iOS SDK до недавно выпущенного 4.1, и теперь у меня возникает следующая ошибка при создании моего приложения:
/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23
/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23: error: expected function body after function declarator
Посмотрев на эту строку в файле .h, я вижу следующее:
CG_EXTERN void CGPDFContextAddDocumentMetadata(CGContextRef context, CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0);
Действительно интересная вещь - определить __MAC_10_7, которая, кажется, нигде не определена. Я получаю эту ошибку при предварительной компиляции файла .pch моего приложения.
Любопытно, что простое приложение hello world компилируется.
Любая идея, что я могу сделать?
Спасибо заранее!
Стелиан
Ответы
Ответ 1
Это известная ошибка с SDK iOS 4.1 и создание с использованием LLVM для iPhone Simulator. Вы можете прочитать все об этом в этой теме на форумах разработчиков Apple.
Рекомендуемое решение состоит в том, чтобы добавить следующие значения в Other C Flags
в ваши настройки сборки проекта: -D__IPHONE_OS_VERSION_MIN_REQUIRED=040100
, где вы заменяете 040100 своей целевой версией развертывания (например, 030000 для версии 3.0).
Ответ 2
У меня есть эта проблема при использовании компилятора LLVM. Попробуйте перекомпилировать с помощью GCC, и проблема (для меня) исчезнет.
Я продолжу расследование, чтобы определить, является ли это общей проблемой привязки или она специфична для моей конфигурации.
- обновление:
Таким образом, это похоже на проблему с CLANG. LLVM GCC 4.2 отлично работает.
Я все еще думаю, что это, вероятно, проблема с моей конфигурацией. Даже пустой проект не будет компилироваться под LLVM CLANG 1.5 для меня.
- обновить 2:
Таким образом, настройка параметров минимальной требуемой версии не выполняется в настройках информации о проекте. Я вручную установил его через:
Другие флаги C: -D__IPHONE_OS_VERSION_MIN_REQUIRED = 031300
(для минимума iOS 3.1, очевидно - если вам нужна более поздняя версия, то вы можете использовать 040100 для версии 4.0)
Это похоже только на проблему симулятора с CLANG/LLVM. Компиляция для устройства напрямую кажется очень хорошей.
Ответ 3
Может быть, вы должны строить с последним Xcode 4, это требование? MAC_10_7 будет определен в заголовках системы, поставляемых с компилятором, который, как я предполагаю, может быть в SDK, но я думаю, что нет. Я предполагаю, что это когда вы создаете для симулятора.