gpt4 book ai didi

ios - 体系结构 armv7 的 undefined symbol

转载 作者:IT王子 更新时间:2023-10-29 07:24:56 30 4
gpt4 key购买 nike

这个问题一直让我抓狂,我不知道怎么解决...

    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 但它没有帮助,有人有任何想法吗?

最佳答案

常见原因

“Undefined symbols for architecture armv7”的常见原因是:

  1. 导入 header 但未链接到正确的库。这很常见,特别是对于像 QuartzCore 这样的库的头文件,因为默认情况下它不包含在项目中。解决:

    • Link Binary With Libraries 中添加正确的库 部分 Build Phases

    • 如果您想在默认搜索路径之外添加一个库,您可以将该路径包含在 Library Search Paths Build Settings 中的值并添加
      -l{library_name_without_lib_and_suffix} (例如,对于 libz.a 使用 -lz )到 Other Linker Flags 部分 Build Settings

  2. 将文件复制到您的项目中,但忘记检查要将文件添加到的目标。解决:

    • 打开 Build Phases 对于正确的目标,展开 Compile Sources 并添加缺少的 .m文件。如果这是您的问题,请投票 Cortex's answer below还有。

  3. 包含一个为其他架构构建的静态库,例如 i386,您主机上的模拟器。解决:

    • 如果您有多个来自库供应商的库文件要包含在项目中,您需要包含一个用于模拟器 (i386) 的文件和一个用于设备(​​例如 armv7)的文件。

    • 您可以选择创建一个 fat static library包含这两种架构。



原答案:

您没有链接到正确的 libz 文件。如果您右键单击该文件并在 finder 中显示它的路径应该位于 iOS sdk 文件夹中的某个位置。以我的为例

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib

我建议删除引用,然后将其重新添加回目标的“链接二进制文件与库”部分“构建阶段”。

关于ios - 体系结构 armv7 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6429494/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com