2012-03-15 1 views
4

Alternate titles (to aid search):Строительства OpenSSL на Xcode 4.3 для симулятора не удается

  • Xcode Build Phase script fails
  • Xcode fail with "make[1]: cc: No such file or directory"
  • Building for simulator fails, building for device works
  • Xcode fails to build for i386, but will for armv6 & armv7

У меня есть проект OpenSSL Xcode, который использует сборки фазы скрипт для компиляции libcrypto.a и libssl.a статических библиотек для прошивки (он также работает на 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.

+0

Немного от темы, но поскольку я просто представил это как ошибку, которая влияет на iOS: [SSL_read/SSL_ERROR_WANT_READ/ENOTCONN бесконечный цикл] (http://rt.openssl.org/Ticket/Display.html?id=2759) – smparkes

+0

Что вы подразумеваете под «проектом OpenSSL Xcode, который использует сценарий Build Phase для компиляции статических библиотек libcrypto.a и libssl.a для iOS (он также работает для Mac OS X)». Насколько я могу судить, это не стандартная часть opensl. –

ответ

8

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

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

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

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

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

Xcode Prefs

и нажмите на кнопку "Установить" для "Command Line Tools".

+0

Спасибо. Вы спасли мне часы исследований – Uri