2011-08-12 5 views
4

btouch를 사용하여 MonoTouch로 가져 오려고하는 Objective C 정적 라이브러리가 있습니다. 내가 겪고있는 문제는 라이브러리가 libz.dylib와 libxml2.dylib에 의존하고 있으며 MonoTouch 애플리케이션에 이러한 프레임 워크를 포함시키는 방법을 모른다는 것입니다.MonoTouch의 gcc_flags 인수에 libz.dylib 및 libxml2.dylib 프레임 워크를 추가하는 방법은 무엇입니까?

나는 XCode 프로젝트에서 정적 라이브러리를 테스트했으며이 테스트 응용 프로그램은 올바르게 컴파일되어 실행됩니다. 지금 MonoTouch에서 정확히 동일한 샘플 응용 프로그램을 빌드하려고하고 있으며 모든 종속성이 포함되도록 gcc_flags 인수를 올바르게 가져 오는 데 문제가 있습니다. Xcode의 응용 프로그램에서

은 다음과 같은 프레임 워크가 포함 될 필요 : "$ (:

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

또한, 엑스 코드에서, 나는 그것이 필요한 모든 헤더 파일을 찾기위한 다음과 같은 검색 경로를 포함했다 SDK_DIR) "는/usr/포함/이제 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에 이들이 포함될 수 있는지 어떻게 알 수 있습니까?

답변

6

이미 가지고있는 --gcc_flags에 "-lz -lxml2"을 추가하십시오. 그러면 응용 프로그램을 링크 할 때 gcc가 libz 및 libxml2를 추가하도록 지시합니다.

이것이 작동하지 않으면 전체 빌드 로그를 게시하십시오 (메시지를 편집하거나 bugzilla.xamarin.com에 버그 보고서를 작성하고 빌드 로그를 첨부하십시오).

+0

감사합니다. poupou !! :) 그것은 정확하게 내가 추가하고 싶었던 것이다! 지금 컴파일되어 실행됩니다. 당신의 도움을 주셔서 감사합니다. :) – BruceHill

+0

우리는 프로젝트에 도서관을 포함시켜야합니까? –

+0

@JonasStawski 그것은 추가 명령이하는 일이며, 수동으로 * 기본 * 라이브러리를 프로젝트에 추가합니다. 대부분이 관리되는 어셈블리를 프로젝트 또는 바인딩 프로젝트 (네이티브 라이브러리를 포함하는 관리되는 어셈블리)에 추가하므로이 단계가 자동으로 수행됩니다 *. – poupou

관련 문제