2011-05-29 69 views
0

我正在爲MonoTouch中的UIWebView提供PhoneGap功能。我已經測試了Objective C中的功能,並且靜態庫在那裏正常工作。但是,當我嘗試將PhoneGap靜態庫鏈接到我的MonoTouch應用程序時,我得到一長串未定義的符號。在MonoTouch中鏈接PhoneGap靜態庫時未定義的符號

我已經包含了PhoneGap庫的所有頭文件,並且我還確保在編譯PhoneGap庫時未勾選'編譯爲縮略圖'。所以我不確定我錯過了什麼,錯誤信息對我沒有多大意義。我會在這裏引用他們(這是一個很長的名單!),但希望這裏有人能夠啓發我鏈接器試圖告訴我什麼!

下面是一長串...

Undefined symbols: 
"_ABPersonSetImageData", referenced from: 
    -[Contact setFromContactDict:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_kABPersonAddressStateKey", referenced from: 
    _kABPersonAddressStateKey$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonAddressStateKey$non_lazy_ptr) 
"_kABPersonPhoneHomeFAXLabel", referenced from: 
    _kABPersonPhoneHomeFAXLabel$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonPhoneHomeFAXLabel$non_lazy_ptr) 
"_kABPersonEmailProperty", referenced from: 
    _kABPersonEmailProperty$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonEmailProperty$non_lazy_ptr) 
"_kABPersonNoteProperty", referenced from: 
    _kABPersonNoteProperty$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonNoteProperty$non_lazy_ptr) 
"_kABWorkLabel", referenced from: 
    _kABWorkLabel$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABWorkLabel$non_lazy_ptr) 
"_kCLLocationAccuracyThreeKilometers", referenced from: 
    _kCLLocationAccuracyThreeKilometers$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kCLLocationAccuracyThreeKilometers$non_lazy_ptr) 
"_OBJC_CLASS_$_CLLocationManager", referenced from: 
    objc-class-ref-to-CLLocationManager in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_kABPersonInstantMessageServiceICQ", referenced from: 
    _kABPersonInstantMessageServiceICQ$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonInstantMessageServiceICQ$non_lazy_ptr) 
"_kABPersonInstantMessageServiceMSN", referenced from: 
    _kABPersonInstantMessageServiceMSN$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonInstantMessageServiceMSN$non_lazy_ptr) 
"_kABPersonInstantMessageServiceKey", referenced from: 
    _kABPersonInstantMessageServiceKey$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonInstantMessageServiceKey$non_lazy_ptr) 
"_kCLLocationAccuracyNearestTenMeters", referenced from: 
    _kCLLocationAccuracyNearestTenMeters$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kCLLocationAccuracyNearestTenMeters$non_lazy_ptr) 
"_kCLLocationAccuracyKilometer", referenced from: 
    _kCLLocationAccuracyKilometer$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kCLLocationAccuracyKilometer$non_lazy_ptr) 
"_UTTypeCopyPreferredTagWithClass", referenced from: 
    -[File getMimeTypeFromPath:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_ABPersonCreate", referenced from: 
    -[Contact init] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_UTTypeCreatePreferredIdentifierForTag", referenced from: 
    -[File getMimeTypeFromPath:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_kABPersonPhoneProperty", referenced from: 
    _kABPersonPhoneProperty$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonPhoneProperty$non_lazy_ptr) 
"_kABPersonInstantMessageUsernameKey", referenced from: 
    _kABPersonInstantMessageUsernameKey$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonInstantMessageUsernameKey$non_lazy_ptr) 
"_kABOtherLabel", referenced from: 
    _kABOtherLabel$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABOtherLabel$non_lazy_ptr) 
"_kABPersonBirthdayProperty", referenced from: 
    _kABPersonBirthdayProperty$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonBirthdayProperty$non_lazy_ptr) 
"_MPMoviePlayerPlaybackDidFinishNotification", referenced from: 
    _MPMoviePlayerPlaybackDidFinishNotification$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _MPMoviePlayerPlaybackDidFinishNotification$non_lazy_ptr) 
"_ABMultiValueRemoveValueAndLabelAtIndex", referenced from: 
    -[Contact setMultiValueStrings:forProperty:inRecord:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contact setMultiValueDictionary:forProperty:inRecord:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_ABRecordRemoveValue", referenced from: 
    -[Contact removeProperty:inRecord:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_ABAddressBookCreate", referenced from: 
    -[Contacts newContact:withDict:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contacts displayContact:withDict:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contacts search:withDict:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contacts save:withDict:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contacts remove:withDict:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_ABMultiValueCopyValueAtIndex", referenced from: 
    -[Contact setMultiValueStrings:forProperty:inRecord:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contact setMultiValueDictionary:forProperty:inRecord:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contact extractMultiValue:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contact extractAddresses] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contact extractIms] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_OBJC_CLASS_$_AVAudioPlayer", referenced from: 
    objc-class-ref-to-AVAudioPlayer in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_kABHomeLabel", referenced from: 
    _kABHomeLabel$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABHomeLabel$non_lazy_ptr) 
"_kABPersonInstantMessageProperty", referenced from: 
    _kABPersonInstantMessageProperty$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonInstantMessageProperty$non_lazy_ptr) 
"_kABPersonAddressZIPKey", referenced from: 
    _kABPersonAddressZIPKey$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonAddressZIPKey$non_lazy_ptr) 
"_ABPersonRemoveImageData", referenced from: 
    -[Contact setFromContactDict:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
    -[Contact setFromContactDict:asUpdate:] in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_kABPersonAddressProperty", referenced from: 
    _kABPersonAddressProperty$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonAddressProperty$non_lazy_ptr) 
"_OBJC_CLASS_$_MPMoviePlayerController", referenced from: 
    objc-class-ref-to-MPMoviePlayerController in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
"_kABPersonInstantMessageServiceYahoo", referenced from: 
    _kABPersonInstantMessageServiceYahoo$non_lazy_ptr in libPhoneGap.a(libPhoneGapLib.a-armv6-master.o) 
(maybe you meant: _kABPersonInstantMessageServiceYahoo$non_lazy_ptr) 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
Process exited with code 1 

希望這是有道理的人在這裏,因爲它是希臘給我! ;)

感謝

回答

2

我發現這個問題;我錯過了PhoneGap庫所需的幾個框架條目。具體而言,需要將這些框架條目添加到gcc_flags中:

-framework corelocation 
-framework mediaplayer 
-framework messageui 
-framework mobilecoreservices 
-framework quartzcore 
-framework systemconfiguration 
-framework audiotoolbox 
-framework avfoundation 
-framework addressbook 
-framework foundation 
-framework coregraphics 
-framework addressbookui 
相關問題