Как да добавите рамките libz.dylib и libxml2.dylib към аргументите gcc_flags в MonoTouch?

Имам статична библиотека Objective C, която се опитвам да импортирам в MonoTouch с помощта на btouch. Проблемът, с който се сблъсквам обаче, е, че библиотеката зависи от libz.dylib и libxml2.dylib и не знам как да включа тези рамки в моето приложение MonoTouch.

Тествах статичната библиотека в проект XCode и това тестово приложение се компилира и работи правилно. Сега се опитвам да създам точно същото примерно приложение в MonoTouch и имам проблеми с правилното получаване на аргументите gcc_flags, така че да бъдат включени всички зависимости.

В приложението XCode е необходимо да бъдат включени следните рамки:

 UIKit.framework
 CFNetwork.framework
 CoreGraphics.framework
 Foundation.framework
 MobileCoreServices.framework
 SystemConfiguration.framework
 libz.dylib
 libxml2.dylib

Освен това в XCode трябваше да включа следния път за търсене, за да намери всички необходими заглавни файлове: "$(SDK_DIR)"/usr/include/libxml2

Сега в MonoTouch имам следния набор в моите gcc_flags под опциите за изграждане:

 -v -v -v -gcc_flags "-framework CFNetwork -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework SystemConfiguration -I${ProjectDir}/lib/include -I$(SDK_DIR)/usr/include/libxml2 -L${ProjectDir}/lib/ -lOfflineRequest -force_load ${ProjectDir}/lib/libOfflineRequest.a"

Когато се опитвам да компилирам, получавам дълъг списък от грешки при свързване, които, доколкото мога да преценя, са причинени от това, че libz.dylib и libxml2.dylib не са включени по време на свързването. Някой има ли идея как мога да гарантирам, че те ще бъдат включени в MonoTouch?


person BruceHill    schedule 12.08.2011    source източник


Отговори (1)


Опитайте да добавите "-lz -lxml2" към --gcc_flags, които вече имате. Това ще инструктира gcc да добави libz и libxml2 при свързване на приложението.

Ако това не работи, моля, публикувайте пълния дневник на компилацията (редактирайте съобщението си или попълнете доклад за грешка в bugzilla.xamarin.com и прикачете дневника на компилацията).

person poupou    schedule 12.08.2011
comment
Благодаря, poupou!! :) Точно това имах нужда да добавя! Той се компилира и работи сега. Благодаря за вашата помощ. :) - person BruceHill; 12.08.2011
comment
трябва ли да включим библиотеката в проекта? - person Jonas Stawski; 15.11.2012
comment
@JonasStawski това прави допълнителната команда, тя ръчно добавя родна библиотека към проекта. През повечето време добавяте управлявани сглобки към проекта или проекти за свързване (управляван сглобка, която вгражда собствени библиотеки), така че тази стъпка се извършва автоматично. - person poupou; 16.11.2012