如何将框架libz.dylib和libxml2.dylib添加到MonoTouch中的gcc_flags参数?

时间:2011-08-12 14:53:36

标签: c# ios xamarin.ios monodevelop dylib

我有一个Objective C静态库,我试图使用btouch导入MonoTouch。我遇到的问题是,库依赖于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 个答案:

答案 0 :(得分:6)

尝试将“ - lz -lxml2”添加到您已有的--gcc_flags中。这将指示gcc在链接应用程序时添加libz和libxml2。

如果这不起作用,请发布完整的构建日志(编辑您的消息或填写bugzilla.xamarin.com中的错误报告并附上构建日志)。