Вопрос

I'm currently following this small tutorial about MonoTouch, SQLite and FTS3: How to use FTS in SQLite with Monotouch

I've sucessfully done step 1 and 2. Unfurtunatelly I'm facing a problem on step 3, because when i try to compile the iPhone monotocuh project I got this error:

Error 1: mtouch failed with the following message: 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=4.2 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk /var/folders/lu/luWKJVufEMO0MYd3+T3MJ++++TI/-Tmp-/tmp4f24ee90.tmp/main.x86.o -o /var/folders/lu/luWKJVufEMO0MYd3+T3MJ++++TI/-Tmp-/tmp4f24ee90.tmp/Iusuite -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 CoreVideo -framework ExternalAccessory -framework EventKitUI -framework QuickLook -framework AudioToolbox -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 -L/Users/user/Develop/MonoDevelop/.../ -lSQLite3_iOS -force_load /Users/user/Develop/MonoDevelop/.../Libraries/libSQLite3_iOS.a

ld: library not found for -lSQLite3_iOS collect2: ld returned 1 exit status (1) (Iusuite.Application)

This is what i use as additional command for monotouch

-gcc_flags "-L${ProjectDir} -lSQLite3_iOS -force_load ${ProjectDir}/Libraries/libSQLite3_iOS.a"

Any hint or idea?

thanks to all Francesco

Это было полезно?

Решение

You're building your own sqlite library and you need to make sure you're using this library from your MonoTouch project.

The extra arguments you're giving mtouch ask gcc to link your new library. The given path is:

/Users/francesco/Develop/MonoDevelop/AdMaiora/Applications/src/AdMaiora.Iusuite/Iusuite.App.Apple/Iusuite.Application/Libraries/libSQLite3_iOS.a

Does that file exists on your system ? If not then look for the file and either update your extra arguments or move the library to the location you provided.

Note: it's uncommon to provide -L${ProjectDir} and then specify -force_load ${ProjectDir}/Libraries/libSQLite3_iOS.a (note the extra /Libraries/ in the path).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top