2012-03-15 54 views
4

Alternate titles (to aid search):ビルのOpenSSL Simulatorは

  • 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

を失敗したため、私は、iOS用libcrypto.alibssl.a静的ライブラリをコンパイルするビルドフェーズスクリプトを使用していますOpenSSLのXcodeプロジェクトを(それはまた、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 

あるようです、唯一の変数は、アーキテクチャです。 armv7i386

+0

トピックを少しは削除しましたが、これをiOSに影響を与えるバグとして提出して以来:[SSL_read/SSL_ERROR_WANT_READ/ENOTCONN無限ループ](http://rt.openssl.org/Ticket/Display.html?id=2759) ) – smparkes

+0

「ビルドフェーズスクリプトを使用してiOS用のlibcrypto.aとlibssl.a静的ライブラリをコンパイルするOpenSSL Xcodeプロジェクト(Mac OS Xでも動作します)」とはどういう意味ですか?私が知る限り、それはopensslの標準的な部分ではありません。 –

答えて

8

Xcodeで始まる4.3 AppleはXcodeでコマンドラインツールを標準でバンドルすることをやめました。

この問題は、XcodeがDevice(armv6 & armv7)とSimulator(i386)で異なるコンパイラを使用しようとしていることが原因です。

armv6用のビルドフェーズスクリプト& armv7 Xcodeは同梱のツール(質問cc(clang)コンパイル)を使用します。しかし、シミュレータビルドの場合、ビルドフェーズスクリプトはシステムバージョンを使用します。

ツールを明示的にインストールしていない場合は、ビルドが失敗します。

は、ツールが Xcode > Preferences > Downloads

Xcode Prefs

を選択し、 "コマンドラインツール" の "インストール" をクリックしてインストールします。

+0

ありがとうございます。あなたは私に数時間の研究を救った – Uri