Сбой сборки OpenSSL на Xcode 4.3 для симулятора

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

  • Сбой сценария этапа сборки 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.


person Richard Stelling    schedule 15.03.2012    source источник
comment
Немного не по теме, но поскольку я только что представил это как ошибку, затрагивающую iOS: SSL_read / SSL_ERROR_WANT_READ / ENOTCONN бесконечный цикл   -  person smparkes    schedule 15.03.2012
comment
Что вы имеете в виду под проектом OpenSSL Xcode, который использует сценарий Build Phase для компиляции статических библиотек libcrypto.a и libssl.a для iOS (он также работает для Mac OS X). Насколько я могу судить, это не стандартная часть openssl.   -  person James Moore    schedule 14.02.2013


Ответы (1)


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

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

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

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

Чтобы установить инструменты, выберите Xcode > Preferences > Downloads

Настройки Xcode

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

person Richard Stelling    schedule 15.03.2012
comment
Спасибо. Вы сэкономили мне часы исследований - person Uri; 20.08.2012