4

备用标题(以帮助搜索):

  • Xcode 构建阶段脚本失败
  • Xcode 失败并显示“make [1]:cc:没有这样的文件或目录”
  • 构建模拟器失败,构建设备工作
  • Xcode 无法为 i386 构建,但会为 armv6 和 armv7 构建

我有 OpenSSL Xcode 项目,它使用Build Phase脚本来编译 iOS 的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

4

1 回答 1

8

从 Xcode 4.3 开始,Apple 停止将命令行工具作为 Xcode 的标准捆绑。

此问题是由 Xcode 尝试为设备(armv6 和 armv7)和模拟器(i386)使用不同的编译器引起的。

在 armv6 和 armv7 的构建阶段脚本中,Xcode 将使用捆绑的工具(在cc(clang) 编译问题中)。但是对于模拟器构建,构建阶段脚本使用系统版本。

如果您没有明确安装工具,构建将失败。

要安装工具,请选择Xcode > Preferences > Downloads

Xcode 首选项

然后单击“命令行工具”的“安装”。

于 2012-03-15T12:03:06.837 回答