Сборка OpenSSL на Xcode 4.3 для симулятора не удалась - PullRequest
4 голосов
/ 15 марта 2012

Альтернативные названия (для облегчения поиска):

  • Сбой сценария сборки Xcode
  • Ошибка Xcode с «make [1]: cc: Нет такого файла или каталога»
  • Здание для симулятора выходит из строя, здание для работы устройства
  • Xcode не может быть собран для i386, но будет для armv6 и armv7

У меня есть проект OpenSSL XCode, который использует сценарий Build Phase для компиляции статических библиотек libcrypto.a и libssl.a для iOS (он также работает для Mac OS X).

Сборка для device работает без проблем, libcrypto.a и libssl.a созданы и могут быть связаны в проекты.

Однако попытка собрать те же библиотеки для simulator приводит к ошибке сборки:

cc -I. -I.. -I../include  -D_DARWIN_C_SOURCE -UOPENSSL_BN_ASM_PART_WORDS -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk   -c -o cryptlib.o cryptlib.c
make[1]: cc: No such file or directory
make[1]: *** [cryptlib.o] Error 1
make: *** [build_crypto] Error 1

Кажется, разница между настройками невелика, единственной переменной является архитектура; armv7 стихи i386.

1 Ответ

8 голосов
/ 15 марта 2012

Начиная с Xcode 4.3 Apple перестала связывать стандартные инструменты командной строки с Xcode.

Эта проблема вызвана тем, что Xcode пытается использовать разные компиляторы для Device (armv6 и armv7) и Simulator (i386).

В сценарии фазы сборки для armv6 и armv7 Xcode будет использовать связанные инструменты (в вопросе компиляция cc (clang)).Но для симуляционных сборок сценарии фазы сборки используют системные версии.

Если вы не установили инструменты явно, сборка не удастся.

Для установки инструментов выберите Xcode > Preferences > Downloads

Xcode Prefs

И нажмите «Установить» для «Инструменты командной строки».

...