2012-01-07 86 views
7

当我编译我的cocos2d MAC项目中,我得到这个错误:Clang:找不到符号。 cocos2d的MAC

Undefined symbols for architecture x86_64: 
"_inflateInit2_", referenced from: 
    _ccInflateMemoryWithHint in ZipUtils.o 
"_inflate", referenced from: 
    _ccInflateMemoryWithHint in ZipUtils.o 
"_inflateEnd", referenced from: 
    _ccInflateMemoryWithHint in ZipUtils.o 
"_gzopen", referenced from: 
    _ccInflateGZipFile in ZipUtils.o 
"_gzread", referenced from: 
    _ccInflateGZipFile in ZipUtils.o 
"_gzclose", referenced from: 
    _ccInflateGZipFile in ZipUtils.o 
"_uncompress", referenced from: 
    _ccInflateCCZFile in ZipUtils.o 

ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

回答

39

您需要的libz.dylib库添加到您的目标。

从Xcode 4.6开始,这非常简单。目标摘要屏幕允许您添加和删除框架和库。这里有一个演示:

adding a library to a target in Xcode 4.6 and later

+1

找到了这个,并帮助我 - 现在图书馆被称为“libz.tbd” – Maxxx 2015-12-04 12:09:53

22

打开目标的构建设置。找到其他连接器标志设置。添加-lz标志。

您不需要像Rob建议的那样将libz.dylib添加为框架,尽管这也适用。

+0

当试图使用cocos2d静态库建立一个项目时,像一个魅力工作。 – diegoreymendez 2013-03-24 16:05:56

+1

也适用于Cocos2d(模板)作为源。 (注意:花栗鼠来源必须是'-f-objc-no-arc'-ed。) – Olie 2014-07-30 22:00:13