这个问题快把我逼疯了,我不知道怎么解决它。

    Undefined symbols for architecture armv7:
  "_deflateEnd", referenced from:
      -[ASIDataCompressor closeStream] in ASIDataCompressor.o
  "_OBJC_CLASS_$_ASIDataDecompressor", referenced from:
      objc-class-ref in ASIHTTPRequest.o
  "_deflate", referenced from:
      -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
  "_deflateInit2_", referenced from:
      -[ASIDataCompressor setupStream] in ASIDataCompressor.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

我认为这与:

ld: symbol(s) not found for architecture armv7

但是我添加了:libz.1.2.3。Dylib并没有帮助,有人有什么想法吗?


当前回答

在我的例子中,当我在源代码控制下创建一个新分支时,我遇到了类似的问题。

我可以通过简单地执行产品>清洁来解决这个问题

其他回答

我遇到了类似的问题,我必须在每个项目配置(调试、发布和部署)和目标的构建设置中检查“仅构建活动体系结构”。

我只添加了libz.1.2.5。Dylib到我的项目,它的工作就像一个魅力。

步骤,

进入构建阶段。 Link Binary With library -使用“+”按钮选择要添加的框架和库。 选择libz.1.2.5。列表中的Dylib。 构建并运行。

我在.h文件中有多个@接口,还没有包括所有相应的@实现指令。确保它们都平衡了。

这解决了我的问题:我正在使用的依赖不支持armv7。所以我别无选择,只能把它切除。Armv7只用于非常老的iphone(比如iphone 4)。

点击“构建设置/全部” 设置“有效架构”为“arm64 arm64e”

目标->构建设置-> Apple LLVM编译语言: 将“c++语言方言”和“c++标准库”设置为编译器默认值有助于解决这个问题。