【发布时间】:2011-09-19 17:53:47
【问题描述】:
这个问题一直让我发疯,我不知道如何解决它......
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 并没有帮助,有人有什么想法吗?
【问题讨论】:
-
任何现有答案中未涵盖的另一种可能性是,您可能正在使用
-ObjC其他链接器标志,因此您正在使用的外部静态库中的 Obj-C 不应该可见的(例如来自 Parse 的),是可见的。如果是这种情况,请查看我的答案:stackoverflow.com/a/26151208/901641 -
根据经验,当文件未添加到项目中时,somethimes XCode 会给出诸如 Match-O 和未找到架构 i386(或其他)的符号之类的错误。你可以右键单击项目文件夹并执行“将文件添加到
”。 -
您实际上可以看到使用 nm 工具生成的具体符号。终端到.o文件的路径,在调用符号的文件和应该有符号的文件上运行
nm -g,你应该看看它们是否匹配,这可以为错误提供线索. nm -g file.o 您可以检查使用以下代码解构的 C++ 符号:nm -gC file.o -
这里有人可以帮帮我吗?我收到以下错误,但上述解决方案都不适合我。我已经用所有可能的设置度过了几天。
Undefined symbols for architecture armv7: "YGConfig::YGConfig(int (*)(YGConfig*, YGNode*, YGLogLevel, char const*, void*))", referenced from: _YGConfigNew in libyoga.a(Yoga.o) ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)