2011-03-18 47 views
0

我在我的应用程序中使用Mobclix作为广告,并且使用我已成功使用的btouch创建了单声道绑定。我还为我的项目添加了额外的GCC标志以链接到Mobclix .a库。Monotouch应用程序无法使用iOS SDK 4.3与Mobclix SDK进行链接

不幸的是,在更新到iOS SDK 4.3,MonoTouch 3.2.5和MonoDevelop 2.4.2后,我不再能够在构建iOS模拟器时链接我的应用程序。我收到以下错误信息:

 
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=4.3 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk /var/folders/JD/JDES4LivFwqM8x7qnFUdg++++TI/-Tmp-/tmp4041c9f3.tmp/main.o -o /var/folders/JD/JDES4LivFwqM8x7qnFUdg++++TI/-Tmp-/tmp4041c9f3.tmp/WordfeudFree -framework CFNetwork -framework AssetsLibrary -framework CoreTelephony -framework EventKit -framework Foundation -framework CoreMotion -framework GameKit -framework MapKit -framework MediaPlayer -framework MessageUI -framework OpenGLES -framework StoreKit -framework UIKit -framework AddressBookUI -framework iAd -framework SystemConfiguration -framework AddressBook -framework AudioToolbox -framework AVFoundation -framework QuartzCore -framework CoreFoundation -framework CoreGraphics -framework CoreLocation -framework ImageIO -framework Security -framework CoreMedia -framework ExternalAccessory -framework EventKitUI -framework QuickLook -lz -u _catch_exception_raise -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -liconv -lmono -lmonotouch -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -framework AddressBook -framework AddressBookUI -framework AudioToolbox -framework AVFoundation -framework CoreGraphics -weak_framework CoreMotion -weak_framework EventKit -framework MediaPlayer -framework MessageUI -framework QuartzCore -framework SystemConfiguration -L/Users/haakon/Code/wordfeud-work/iOS/Wordfeud.Free/Wordfeud.Free/lib -lMobclix_nonthumb -force_load /Users/haakon/Code/wordfeud-work/iOS/Wordfeud.Free/Wordfeud.Free/lib/libMobclix_nonthumb.a 
Undefined symbols: 
    "__Unwind_Resume", referenced from: 
     +[MobclixFeedback sharedInstance] in libMobclix_nonthumb.a(MobclixFeedback.o) 
     -[MobclixFeedback sendComment:] in libMobclix_nonthumb.a(MobclixFeedback.o) 
     -[MobclixAdViewInternal finishInstrumentation] in libMobclix_nonthumb.a(MobclixAdViewInternal.o) 
     -[MobclixTextAdView finishedLoadingIconURL:withImageData:] in libMobclix_nonthumb.a(MobclixTextAdView.o) 
     -[MobclixInteractiveVideoView finishedLoadingImageURL:withImageData:] in libMobclix_nonthumb.a(MobclixInteractiveVideoView.o) 
     -[MobclixBannerAdView finishedLoadingImageURL:withImageData:] in libMobclix_nonthumb.a(MobclixBannerAdView.o) 
     -[MCResourcesController playVideoImage] in libMobclix_nonthumb.a(MCResourcesController.o) 
     -[MCResourcesController closeIconImage] in libMobclix_nonthumb.a(MCResourcesController.o) 
     -[MCResourcesController closeBlankImage] in libMobclix_nonthumb.a(MCResourcesController.o) 
     -[MCResourcesController closeBoxImage] in libMobclix_nonthumb.a(MCResourcesController.o) 
     -[MCResourcesController backImage] in libMobclix_nonthumb.a(MCResourcesController.o) 
     -[MCResourcesController forwardImage] in libMobclix_nonthumb.a(MCResourcesController.o) 
     +[MCResourcesController sharedResources] in libMobclix_nonthumb.a(MCResourcesController.o) 
     -[NSDictionary(MobclixHelper) stringForKeyPath:] in libMobclix_nonthumb.a(MobclixController.o) 
     -[NSDictionary(MobclixHelper) urlForKeyPath:] in libMobclix_nonthumb.a(MobclixController.o) 
     -[NSDictionary(MobclixHelper) integerForKeyPath:] in libMobclix_nonthumb.a(MobclixController.o) 
     -[NSDictionary(MobclixHelper) floatForKeyPath:] in libMobclix_nonthumb.a(MobclixController.o) 
     +[MobclixController sharedInstanceWithApplicationId:] in libMobclix_nonthumb.a(MobclixController.o) 
     +[NSCharacterSet(MCNSCharacterSet_Extensions) mcLinebreaksCharacterSet] in libMobclix_nonthumb.a(MobclixController.o) 
     +[MCSession currentSession] in libMobclix_nonthumb.a(MCSession.o) 
     -[MCConfig loadConfiguration:] in libMobclix_nonthumb.a(MCConfig.o) 
     +[MCConfig currentConfig] in libMobclix_nonthumb.a(MCConfig.o) 
     +[MCEnvironment platformName] in libMobclix_nonthumb.a(MCEnvironment.o) 
     +[MCEGOHTTPRequest _requestsLock] in libMobclix_nonthumb.a(MCEGOHTTPRequest.o) 
     +[MCEGOHTTPRequest currentRequests] in libMobclix_nonthumb.a(MCEGOHTTPRequest.o) 
     -[MobclixAdEvents initWithEvents:] in libMobclix_nonthumb.a(MobclixAdEvents.o) 
     +[MobclixInstrumentation currentInstrumentation] in libMobclix_nonthumb.a(MobclixInstrumentation.o) 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

据我了解,问题是,Mobclix的库使用C++(特别是C++的例外),而在MonoTouch的/ MonoDevelop的链接步骤不与C链接++标准库,或者启用C++异常。我不明白为什么这只发生在为模拟器构建时,或者为什么在我更新MonoTouch和iOS SDK之前没有发生。

任何人都知道如何解决这个问题?

我已经尝试在我的-gcc_flags中添加-fexceptions和-lstdC++,但它根本没有帮助。

回答

0

新的MonoTouch Alpha 2有一个新的“Extra Arguments”标志,“-cxx”会强制链接到g ++。试试看。

+1

这没有帮助不幸。我可以看到它在链接时使用了g ++,但我得到了相同的错误消息(未定义符号“__Unwind_Resume”)。我设法通过将-lgcc_eh添加到gcc_flags来解决该问题。如果我使用-cxx或者不使用,那并不重要。这也适用于稳定版本的MonoTouch。 – Haakon 2011-03-19 14:11:28

相关问题