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

    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并没有帮助,有人有什么想法吗?


当前回答

对我来说,问题是我忘记在.m(实现)中为我的常量设置值

file const kFooKey = @"Foo";

其他回答

我还通过拖放添加了文件。我所做的,我删除了所有文件的引用(不包括框架),然后通过添加文件到项目选项正确地添加它们,问题消失了。

我有这个警告,当在另一个类的.h文件中写两个类时,但忘记在.m文件中写这个类的实现。

回到你的项目,点击Build phases, Compile sources, Add GameCenterManager。M到列表上。

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

我在iphone5s上运行app时遇到了这个问题,通过添加arm64到架构解决了这个问题。