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

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


当前回答

尝试实现派生类的至少一个非内联函数。如果不这样做,链接器可能会避免为该类创建类型信息。

其他回答

当我试图编译一个将“c++标准库”的目标构建设置设置为“libc++”的项目时,我收到了“架构armv7的未定义符号:”错误(必要的,因为项目使用了c++ 11的一些功能),并且该项目包括一个具有相同设置设置为“libstdc++”的子项目(或编译器默认值,因为它目前)。

将子项目的“c++标准库”设置更改为libc++可以修复这个问题,但前提是首先将子项目的部署目标设置为5.0或以上(5.0对于libc++是必要的)。

目标中可能缺少一些类。这通常发生在你重命名/删除/添加新的类文件到你的项目。若要修复,请将新添加的类添加到某些目标。

在Project Navigator中选择类(右侧栏),打开Utilities侧栏(右侧栏),从Utilities中选择File Inspector (File like icon),在Target Membership选项卡下勾选你的目标。这都是为了避免“删除引用”,并再次添加“添加到目标”的技巧。

所以:选择Class -> Utilities (File Inspector) -> Target Membership ->勾选你想要的目标。

如果您在释放模式下构建您的Flutter项目时遇到了这个问题-这对我有帮助:

Set your build system to New Build System in File > Project Settings… delete folders ios and build_ios from your project folder. create ios module by executing flutter create . from your project folder. open Xcode and: set the IOS Deployment Target to at least 9.0 in PROJECT > Runner check your Signing & Capabilities make sure your Build Configuration is set to Release in Edit Scheme... and build for Generic iOS Device execute pod install from your project folder execute flutter pub get from your project folder

现在打开你的Xcode并构建或存档它:Product > build(或archive)

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

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

步骤,

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