4

我有一个 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 中?

4

1 回答 1

6

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

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

于 2011-08-12T15:32:40.253 回答