Сторонняя библиотека MonoTouch работает с 4.2, но не с 5.0 - PullRequest
0 голосов
/ 12 марта 2012

У меня есть сторонняя библиотека, которая наконец-то появилась в моем приложении MonoTouch. Тем не менее, он будет компилироваться только для симулятора, когда я установлю SDK на 4.2. Если я установлю его на 5.0, компоновщик потерпит неудачу. Он будет скомпилирован в 5.0 для реального устройства. Что такое gcc_s.10.5, о котором он просит, и где он должен быть расположен?

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

Ответы [ 3 ]

2 голосов
/ 12 марта 2012

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

1 голос
/ 12 марта 2012

Похоже, ваша система находится в несовместимом состоянии.

MonoTouch не пытается установить связь с libgcc_s, а bit из googling показывает, что он вообще не имеет отношения к MonoTouch.

Я бы попытался удалить и переустановить Xcode снова (возможно, вам придется установить MonoTouch снова, так как Xcode может удалить его в некоторых случаях):

0 голосов
/ 04 апреля 2012

Ответы выше были на правильном подходе.Та же проблема возникла и в другом проекте.В конце концов я обновился со Snow Leopard до Lion, обновился до последней версии xcode и теперь все в порядке.

...