Как добавить фреймворки libz.dylib и libxml2.dylib к аргументам gcc_flags в MonoTouch? - PullRequest
4 голосов
/ 12 августа 2011

У меня есть статическая библиотека 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?

1 Ответ

6 голосов
/ 12 августа 2011

Попробуйте добавить "- lz -lxml2" к --gcc_flags, которые у вас уже есть. Это даст команду gcc добавить libz и libxml2 при связывании приложения.

Если это не работает, то, пожалуйста, опубликуйте полный журнал сборки (отредактируйте свое сообщение или заполните отчет об ошибке на bugzilla.xamarin.com и приложите журнал сборки).

...