我最近将xcode更新到了上一个版本。所以现在我的模拟器有8.2 ios版本。我的cocos2d-x项目仍在使用设备(在ipad2和iphone5s上测试),但我无法为模拟器编译它们。我收到了大量的链接器错误:
架构x86_64的未定义符号:
" _AVAudioSessionCategoryAmbient",引自:
- libcocos2d中的[CDAudioManager setMode:] iOS.a(CDAudioManager.o)
libcocos2d iOS.a中的- [CDAudioManager applicationWillResignActive](CDAudioManager.o)
...
几百行
...
ld:找不到架构x86_64 clang的符号:错误:链接器命令失败
使用退出代码1(使用-v查看调用)
显示前200条通知
仅显示前200个错误
通常我使用的所有框架以及cocos2d-x库本身都存在错误。在到达那里之前,大多数框架都以红色突出显示,但我修复了将符号链接设为:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
使用:
sudo ln -s iPhoneOS.sdk iPhoneOS8.1.sdk
我当然使用cocos2d-x 3.4。
编辑:
迁移到v.3.5后,将有效的体系结构设置为:armv7,armv7s,i386,x86_64,将构建活动体系结构设置为no(在main和cocos2d_libs项目中),具有各种设置变量,现在我得到:
架构i386的未定义符号:
和其他人一样。不适用于任何模拟器。我甚至下载了8.1模拟器,它也没有在那里工作。这是一些愚蠢的链接器错误,我无法弄明白。
我也注意到新项目很好。在我的项目中,我也有很少的objC类(对于像admob这样的其他东西),它们正在使用ARC。所以我不得不添加" -fobjc-arc"在构建阶段的少数几个地方 - >编译源代码。问题是它只是与模拟器相关的问题,并且在我将ios sdk从8.1更新到8.2时出现。
此致