0

我在通用 iOS 应用程序中使用 libpd,使用 iOS 7 和 Xcode 5.0.2。libpd 按预期工作(可以加载 Pd 补丁并与之交互),但我在使用外部对象时遇到了麻烦。

这是我看到的错误消息:

Ld DerivedData/Build/Products/Debug-iphoneos/BrightHearts.app/BrightHearts normal armv7s
cd /Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts
setenv IPHONEOS_DEPLOYMENT_TARGET 7.0
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.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 armv7s -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -L/Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts/DerivedData/Build/Products/Debug-iphoneos 
-F/Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts/DerivedData/Build/Products/Debug-iphoneos -filelist /Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts/DerivedData/Build/Intermediates/BrightHearts.build/Debug-iphoneos/BrightHearts.build/Objects-normal/armv7s/BrightHearts.LinkFileList 
-dead_strip -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=7.0 -framework GLKit -framework OpenGLES -framework SystemConfiguration -framework Security -framework QuartzCore -framework CoreText /Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts/DerivedData/Build/Products/Debug-iphoneos/libpd-ios.a 
-framework AudioToolbox -framework AVFoundation -framework CoreBluetooth -framework CoreGraphics -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker 
/Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts/DerivedData/Build/Intermediates/BrightHearts.build/Debug-iphoneos/BrightHearts.build/Objects-normal/armv7s/BrightHearts_dependency_info.dat -o 
/Users/jman/Developer/Sensorium/brighthearts-beta/BrightHearts/DerivedData/Build/Products/Debug-iphoneos/BrightHearts.app/BrightHearts

Undefined symbols for architecture armv7s:
  "_allsickles_setup", referenced from:
  -[SENViewController setupPD] in SENViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经看到将 libpd 子项目的“构建活动架构”标志设置为“是”的建议——这没有任何区别,我仍然遇到同样的错误。

这个问题是否有解决方案(明显或其他)?

4

1 回答 1

0

在我看来,您实际上并没有allsickles.c从 Cyclone 外部编译。该文件具有void allsickles_setup(void)我猜您试图调用以设置 libpd 的方法。

如果allsickles.c在您的项目中,则可能实际上并未编译,因此您可能必须将其添加到 Build Phases 下的“Compile Sources”中。

于 2014-03-21T04:04:57.543 回答