2012-03-12 50 views
0

我有第三方库,我终于在我的MonoTouch应用程序中工作。但是,只有在将SDK设置为4.2时,才会为模拟器进行编译。如果我将它设置为5.0,链接器将失败。它编译为5.0为实际设备。它要求的gcc_s.10.5是什么,它应该放在哪里?MonoTouch第三方库与4.2但不是5.0兼容

Generated /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/main.m 
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=5.0 -arch i386 -std=c99 -I/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/include -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -c /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/main.m -o /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/main.x86.o -DDEBUG 
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=5.0 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/main.x86.o -o /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/RetailStuff -framework CFNetwork -framework Foundation -framework UIKit -framework SystemConfiguration -framework CoreFoundation -framework CoreGraphics -framework AudioToolbox -framework AVFoundation -framework ExternalAccessory -framework QuartzCore -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -liconv -lmono-2.0 -lmonotouch -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -u _catch_exception_raise -force_load /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/libGrabbaDriver.a 
Process exited with code 1, command: 
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version=2 -miphoneos-version-min=5.0 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/main.x86.o -o /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/RetailStuff -framework CFNetwork -framework Foundation -framework UIKit -framework SystemConfiguration -framework CoreFoundation -framework CoreGraphics -framework AudioToolbox -framework AVFoundation -framework ExternalAccessory -framework QuartzCore -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -liconv -lmono-2.0 -lmonotouch -L/Developer/MonoTouch/SDKs/MonoTouch.iphonesimulator.sdk/usr/lib -u _catch_exception_raise -force_load /var/folders/GG/GG6dZ9dzFX0vYZmJ1+6pQ++++TI/-Tmp-/tmp6a32a243.tmp/libGrabbaDriver.a 
ld: library not found for -lgcc_s.10.5 
collect2: ld returned 1 exit status 

mtouch exited with code 1 

回答

0

的答案正确的(新)版本已经是联系在一起的。同样的问题也发生在不同的项目上。最后,我从Snow Leopard升级到Lion,升级到最新的xcode,现在它全部正常。

1

看起来您的系统处于不一致的状态。

MonoTouch不尝试链接libgcc_s,并且bitofgoogling显示它根本不与MonoTouch相关。

我会尝试卸载并重新安装的Xcode(您可能需要重新安装的MonoTouch过,因为Xcode中可能会在某些情况下将其删除):

2

libgcc_s可能其中你的libGrabbaDriver.a依赖将您的MonoTouch项目与。

ld: library not found for -lgcc_s.10.5 

该库威力的名称发生了变化,即它不是在相同的iOS我5.1的系统。

/Applications//Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/libgcc_s.1.dylib 

从那里,我会假设你需要:

  • 与新的库链接您的应用程序(希望没有内部的变化);

  • 重建机库上面是对的方法与libgcc_s