【问题标题】:Linking libz.dylib and libsqlite3.dylib in Xamarin iOS Project在 Xamarin iOS 项目中链接 libz.dylib 和 libsqlite3.dylib
【发布时间】:2015-06-27 10:59:30
【问题描述】:

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

【问题讨论】:

    标签: xamarin xamarin.ios xamarin-studio xamarin-linker


    【解决方案1】:

    我找到了一个很棒的资源:@​​987654321@

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

    【讨论】:

      【解决方案2】:

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

      sharpie pod init ios nameOfCocoaPod
      sharpie pod bind
      

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

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

      【讨论】:

        猜你喜欢
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-10
        • 2011-05-17
        • 2011-07-20
        • 2011-10-19
        • 2016-01-09
        相关资源
        最近更新 更多