1

我创建了一个需要以下框架的 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 绑定项目中进行一些额外的配置?

4

2 回答 2

3

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

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

于 2015-04-20T16:15:50.210 回答
1

如果您正在使用 Sharpie 为 cocoapod 创建绑定:

sharpie pod init ios nameOfCocoaPod
sharpie pod bind

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

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

于 2016-09-03T14:23:59.493 回答