在Xamarin iOS Project中链接libz.dylib和libsqlite3.dylib

时间:2015-04-20 15:53:12

标签: xamarin xamarin.ios xamarin-studio

我创建了一个Xamarin iOS绑定项目,需要以下框架:

SystemConfiguration.framework
CoreTelephony.framework
libz.dylib
libsqlite3.dylib

我在iOS绑定项目中将以下行添加到linkwith.cs文件中:

Frameworks = "SystemConfiguration CoreTelephony"

这似乎正常工作,并告诉该项目在绑定时包含这些框架。根据我的阅读,听起来好像剩下的2个库需要作为链接器标志添加到项目中,引用从我的iOS绑定项目生成的DLL。所以我创建了一个测试应用程序,导入了DLL,现在需要添加链接器标志,但我的项目找不到合适的库。

Xamarin Studio中的链接器标志如下:

-gcc_flags "-lz -lsqlite3.0"

当我构建我的Xamarin测试应用程序时,我得到一些关于框架的错误无法找到。是否需要链接其他标志,或者我需要在iOS绑定项目中进行其他配置吗?

2 个答案:

答案 0 :(得分:3)

我找到了一个很好的资源:http://ipixels.net/blog/specify-extra-gcc-flags-for-native-library-binding-in-xamarin-ios/

我需要将LinkerFlags = "-lz -lsqlite3.0"添加到我的.linkwith.cs文件中。然后我重建了库以生成一个新的DLL并将其添加到我的测试应用程序中。然后,测试应用程序正确构建。

答案 1 :(得分:1)

如果您使用sharpie创建cocoapod的绑定:

sharpie pod init ios nameOfCocoaPod
sharpie pod bind

你得到一个nameOfCocoaPod.framework文件和.cs-binding文件。

nameOfCocoaPod.framework文件应添加到Native References下的绑定项目中。要改变,例如框架或LinkerFlags,右键单击并打开属性。