【问题标题】:Monotouch app unable to link with Mobclix SDK using iOS SDK 4.3Monotouch 应用程序无法使用 iOS SDK 4.3 与 Mobclix SDK 链接
【发布时间】:2011-03-18 14:26:13
【问题描述】:

我在我的应用程序中使用 Mobclix 来制作广告,并且我已经使用 btouch 创建了单声道绑定,我已经成功使用了一段时间。我还在我的项目中添加了额外的 GCC 标志,以便链接到 Mobclix .a 库。

不幸的是,在更新到 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 Exter nalAccessory -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 未定义的符号: “__Unwind_Resume”,引用自: +[MobclixFeedback sharedInstance] 在 libMobclix_nonthumb.a(MobclixFeedback.o) -[MobclixFeedback sendComment:] 在 libMobclix_nonthumb.a(MobclixFeedback.o) - [MobclixAdViewInternal finishInstrumentation] 在 libMobclix_nonthumb.a(MobclixAdViewInternal.o) - [MobclixTextAdView finishedLoadingIconURL:withImageData:] 在 libMobclix_nonthumb.a(MobclixTextAdView.o) -[MobclixInteractiveVideoView finishedLoadingImageURL:withImageData:] 在 libMobclix_nonthumb.a(MobclixInteractiveVideoView.o) -[MobclixBannerAdView finishedLoadingImageURL:withImageData:] 在 libMobclix_nonthumb.a(MobclixBannerAdView.o) -[MCResourcesController playVideoImage] 在 libMobclix_nonthumb.a(MCResourcesController.o) - [MCResourcesController closeIconImage] 在 libMobclix_nonthumb.a(MCResourcesController.o) -[MCResourcesController closeBlankImage] 在 libMobclix_nonthumb.a(MCResourcesController.o) - [MCResourcesController closeBoxImage] 在 libMobclix_nonthumb.a(MCResourcesController.o) -[MCResourcesController backImage] 在 libMobclix_nonthumb.a(MCResourcesController.o) -[MCResourcesController forwardImage] 在 libMobclix_nonthumb.a(MCResourcesController.o) +[MCResourcesController sharedResources] 在 libMobclix_nonthumb.a(MCResourcesController.o) -[NSDictionary(MobclixHelper) stringForKeyPath:] 在 libMobclix_nonthumb.a(MobclixController.o) -[NSDictionary(MobclixHelper) urlForKeyPath:] 在 libMobclix_nonthumb.a(MobclixController.o) -[NSDictionary(MobclixHelper) integerForKeyPath:] 在 libMobclix_nonthumb.a(MobclixController.o) -[NSDictionary(MobclixHelper) floatForKeyPath:] 在 libMobclix_nonthumb.a(MobclixController.o) +[MobclixController sharedInstanceWithApplicationId:] 在 libMobclix_nonthumb.a(MobclixController.o) +[NSCharacterSet(MCNSCharacterSet_Extensions) mcLinebreaksCharacterSet] 在 libMobclix_nonthumb.a(MobclixController.o) +[MCSession currentSession] 在 libMobclix_nonthumb.a(MCSession.o) -[MCConfig loadConfiguration:] 在 libMobclix_nonthumb.a(MCConfig.o) +[MCConfig currentConfig] 在 libMobclix_nonthumb.a(MCConfig.o) +[MCEnvironment platformName] 在 libMobclix_nonthumb.a(MCEnvironment.o) +[MCEGOHTTPRequest _requestsLock] 在 libMobclix_nonthumb.a(MCEGOHTTPRequest.o) +[MCEGOHTTPRequest currentRequests] 在 libMobclix_nonthumb.a(MCEGOHTTPRequest.o) -[MobclixAdEvents initWithEvents:] 在 libMobclix_nonthumb.a(MobclixAdEvents.o) +[MobclixInstrumentation currentInstrumentation] 在 libMobclix_nonthumb.a(MobclixInstrumentation.o) ld:未找到符号 collect2: ld 返回 1 个退出状态

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

有人知道如何解决这个问题吗?

我尝试将 -fexceptions 和 -lstdc++ 添加到我的 -gcc_flags 中,但根本没有帮助。

【问题讨论】:

    标签: xamarin.ios


    【解决方案1】:

    新的 MonoTouch Alpha 2 有一个新的“额外参数”标志,“-cxx”,它将强制与 g++ 链接。试试看。

    【讨论】:

    • 不幸的是,这并没有帮助。我可以看到它在链接时使用了 g++,但我收到了相同的错误消息(未定义的符号“__Unwind_Resume”)。我设法通过将 -lgcc_eh 添加到 gcc_flags 来解决这个问题。我是否使用 -cxx 都没关系。这也适用于 MonoTouch 的稳定版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多