Искаженная запись метаданных для архитектуры i386

#iphone #xcode4.2

#iPhone #xcode4.2

Вопрос:

Я только что обновился с Xcode 4 до Xcode 4.2, и теперь я получаю следующую ошибку при сборке для симулятора:

 ld: in /Users/rstaicut/Library/Developer/Xcode/DerivedData/iphone/Build/Intermediates/iphone.build/QA Server-iphonesimulator/Project iPhone Debug.build/Objects-normal/i386/CartController.o, could not parse object file 

/Users/rstaicut/Library/Developer/Xcode/DerivedData/iphone/Build/Intermediates/iphone.build/QA Server-iphonesimulator/Project iPhone Debug.build/Objects-normal/i386/CartController.o: 

**Malformed metadata record for architecture i386**
**Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1**
  

Следует отметить, что для этого обновления я изменил компилятор на LLVM GCC 4.2, и я использую armv6 и armv7 для архитектур. Я получаю эту ошибку только для симулятора, сборка завершается для устройства.

Есть идеи, что может означать искаженная запись метаданных?

Ответ №1:

Наконец-то симулятор заработал. Это то, что я изменил:

  • В разделе Проект> Настройки сборки> Архитектуры> Допустимые архитектуры я вынул i386 и оставил только armv6 и armv7. Под архитектурами у меня есть только armv6 и armv7

  • Я изменил компилятор с LLVM GCC 4.2 на компилятор Apple LLVM 3.0 (в разделе Проект> Настройки сборки> Параметры сборки> Компилятор для C / C / Objective-C

  • Изменена цель развертывания iOS с iOS 3.1 на iOS 4.0

  • Последним шагом было нажать «Проверить настройки» (кнопка посередине внизу). Вам будет предложено изменить некоторые настройки компилятора с LLVM GCC на Apple LLVM Compiler 3.0. Нажмите OK.

После этого мой симулятор начал волшебным образом работать. Ошибок нет, хотя много предупреждений из-за изменения компилятора.

Надеюсь, это поможет всем, кто сталкивается с этой проблемой.