【发布时间】:2014-11-13 19:49:24
【问题描述】:
尝试在 Yosemite 上为 iOS 8.1/XCode 6 更新 Kobold2D/Cocos2d 2.1 项目。
使用此处提供的解决方案 (How to update Kobold2D 2.1 project to MacOS10.10 / XCode 6.1?) 后,我收到一个链接器错误,尽管所有尝试(重新启动、清理、删除和添加框架)仍然存在,并且使我的项目无法启动。 我无计可施;这是一个为期 3 年的项目,我正在碰壁... XCode 6.1 链接器错误如下所示:
Ld /Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Products/Debug-iphonesimulator/OME.app/OME normal i386
cd /Users/fabian/Kobold2D/Kobold2D-2.1.0/OME
导出 IPHONEOS_DEPLOYMENT_TARGET=7.1
导出 PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin: /usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8。 1.sdk -L/Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Products/Debug-iphonesimulator -F/Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/ Products/Debug-iphonesimulator -filelist /Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Intermediates/OME.build/Debug-iphonesimulator/OME-iOS.build/Objects-normal/i386/OME。 LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -lz -framework Foundation -framework AudioToolbox -framework OpenAL -framework QuartzCore -framework SystemConfiguration -framework AVFoundation -framework CoreGraphics -framework CoreLocation -framework MediaPlayer -framework OpenGLES -force_load /Users/fabian/Library/Developer /Xcode/德里vedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Products/Debug-iphonesimulator/libkobold2d-ios.a -force_load /Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Products/Debug-iphonesimulator/libcocos2d-ios。 a -weak_framework CoreMotion -weak_framework GameKit -weak_framework iAd -weak_framework MessageUI -weak_framework StoreKit -weak_framework UIKit -weak-lSystem -lstdc++ -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -框架 AudioToolbox -framework AVFoundation -framework CoreFoundation -framework GameKit -lbox2d-ios -lchipmunk-ios -lchipmunk-spacemanager-ios -lcocos2d-extensions-ios -lcocos2d-ios -lcocos3d-ios -lcocosdenshion-ios -lkobold2d-ios -lobjectal- ios -lsneakyinput-ios -lwax-ios -Xlinker -dependency_info -Xlinker /Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Intermediates/OME.build/Debug-iphonesimulator/OME-iOS.build/对象-正常/i386/OME_dependenc y_info.dat -o /Users/fabian/Library/Developer/Xcode/DerivedData/OME-abspfkzbpimdpqaoclhujzvtfred/Build/Products/Debug-iphonesimulator/OME.app/OME
架构 i386 的未定义符号:
“___isnan”,引用自:
-[OALGainAction prepareWithTarget:] 在 libobjectal-ios.a(OALAudioActions.o)
-[OALPitchAction prepareWithTarget:] 在 libobjectal-ios.a(OALAudioActions.o)
-[OALPanAction prepareWithTarget:] 在 libobjectal-ios.a(OALAudioActions.o)
ld:未找到体系结构 i386 的符号
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
请漂亮:有人有想法吗?我可能对这里的可能原因了解不够,无法自行进行。 FWIW,libobjectal-ios.a 已被多次删除并重新添加到项目中,但无济于事。
【问题讨论】:
-
尝试单独构建目标库。检查它的源代码是否使用了 isnan 函数,也许可以用另一种检查代替它(isnan 测试“不是数字”)。升级目标代码应该是独立的,不会造成太多麻烦。通常你会遇到 cocos2d v2 的问题,因为它不能编译(没有错误)到 64 位/armv7s,但 Apple 现在需要在所有应用程序中使用 armv7s 代码。
-
@LearnCocos2D - 该死,我计划在 1 周内发布到应用商店,只有 2.1,32 位。我以为新规则是针对 2 月的。我错了,面临另一个叉车升级到 3.x 吗?
-
实际上不确定,这是我从某处了解到的,这条新规则可能尚未生效,但只是宣布将在未来某个日期(不是目前)生效跨度>
标签: ios cocos2d-iphone linker kobold2d