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

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


当前回答

我在安装shareKit时遇到了这个问题。它可以在模拟器中运行,但不能在设备上运行。我从其他链接器标志中删除了-all_load,一切都在模拟器和iphone设备中正常工作。

其他回答

我曾经遇到过这个问题。我意识到在移动一个类时,我已经在目标文件夹上用.h文件覆盖了.mm文件。

修复这个问题就修复了错误。

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

我有类似的问题,并看到与“std::”相关的错误。

我改变了构建设置->苹果LVM 5.0 -语言c++ -> c++标准库

从libc++ (LLVM c++标准库与c++ 11支持) libstdc++ (GNU c++标准库)

我没有在这里找到这个建议,所以它是这样的: 如果你的项目有多个目标(即一个OSX和一个iOS),那么你必须为每个目标链接相关的库。例如,在我的情况下,我需要AudioToolbox..我不得不为OSX和iOS添加一次(在框架文件夹下,你必须有每个目标的每个库的副本..如果你只看到一个..那么这就是一个危险信号)

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