MMP:错误MM5109:本机链接失败,错误代码为1。检查构建日志以了解详细信息

时间:2018-10-23 12:03:58

标签: xamarin binding xamarin.mac

我正在使用Visual Studio Mac中的Binding项目为Xamarin.Mac创建Binding DLL。

我能够成功构建Binding DLL,但是在Xamarin.Mac项目中使用该DLL时,它将返回以下错误。

MMP:错误MM5109:本机链接失败,错误代码为1。检查构建日志以了解详细信息。


错误详细信息:

  

构建:CompatibleToXamarinForms.Mac(Release | iPhone)构建开始   23-10-2018 17:16:33。

     
     

项目   “ /Users/XYZ/Desktop/John/Agora/CompatibleToXamarinForms/CompatibleToXamarinForms.Mac/CompatibleToXamarinForms.Mac.csproj”   (构建目标):

     

目标_CoreCompileImageAssets:       工具/Applications/Xcode.app/Contents/Developer/usr/bin/actool执行以以下参数开头:--errors --warnings --notices   --output-format xml1 --output-partial-info-plist             ...         “ ___gxx_personality_v0”,引用自:             -AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中的[AgoraLiveTranscoding初始化]             -AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中的[AgoraLiveInjectStreamConfig init]             -AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中的[AgoraPublisherConfiguration toJsonString]             agora :: rtc :: RtcEngineEventHandlerIosImpl :: onMediaEngineLoadSuccess()   在AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中             ____ZN5agora3rtc28RtcEngineEventHandlerIosImpl24onMediaEngineLoadSuccessEv_block_invoke   在AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中             agora :: rtc :: RtcEngineEventHandlerIosImpl :: onMediaEngineStartCallSuccess()   在AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中             ____ZN5agora3rtc28RtcEngineEventHandlerIosImpl29onMediaEngineStartCallSuccessEv_block_invoke   在AgoraRtcEngineKit(libagora_rtc_sdk.a-x86_64-master.o)中             ...       ld:找不到架构x86_64的符号       clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

     

MMP:错误MM5109:本机链接失败,错误代码为1。检查构建日志以了解详细信息。完成的构建目标“ _CompileToNative”   在项目“ CompatibleToXamarinForms.Mac.csproj”中–失败。

     

完成的建筑项目“ CompatibleToXamarinForms.Mac.csproj”-失败。

     

构建失败。

     

/Users/XYZ/Desktop/John/Agora/CompatibleToXamarinForms/CompatibleToXamarinForms.Mac/obj/iPhone/Release/mmp-cache/registrar.m(36313,17):   警告G7AC58F0F:方法'deviceBrowserView:selectionDidChange:'在   协议'IKDeviceBrowserViewDelegate'未实现[-Wprotocol]   /Users/XYZ/Desktop/John/Agora/CompatibleToXamarinForms/CompatibleToXamarinForms.Mac/obj/iPhone/Release/mmp-cache/registrar.m(39971,2):   警告GB7F1753F:方法可能缺少[超级   splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:]调用   [-Wobjc-missing-super-calls] clang:错误:链接程序命令失败   退出代码为1(使用-v查看调用)的MMP:错误MM5109:本机   链接失败,错误代码为1.检查构建日志以获取详细信息。       2警告       2个错误

     

经过的时间00:00:22.65

     

----------------------完成----------------------      

内部版本:2个错误,2个警告

     

能否请您帮忙解决此问题。

2 个答案:

答案 0 :(得分:0)

我从上述错误中发现的事情

  1. 您正试图为xamarin.mac项目选择iPhone,但绑定不正确。可能是因为您已经创建了Mac支持的绑定项目,并且正尝试使用iPhone配置或其他方式进行构建。

  2. 在xcode中构建与xamarin iOS项目的绑定库(例如.a文件)时是否选择了相同的体系结构?

同时选中这两个选项,您将得到答案。

答案 1 :(得分:0)

在错误日志中,您似乎缺少本机库需要运行的某些框架或库。

如果这是一个Agora MacOS SDK(AgoraRtcEngineKit.framework),则将需要添加几个框架和库作为链接器标志。 框架:

  • CoreMedia
  • CoreAudio
  • SystemConfiguration
  • QTKit
  • CoreWLAN
  • 基金会
  • AVFoundation
  • VideoToolbox
  • AudioToolbox
  • IOKit

图书馆:

  • libresolv
  • libc ++

我怎么知道?

通常,本机库提供示例应用程序,在这里您可以查看所需的框架和库:

list of frameworks and libraries in for Agora Mac SDK

可以肯定的是,请转到Visual Studio For Mac 2017首选项,并将生成日志的详细程度设置为诊断,然后将失败的生成日志发布到gist.github.com

configure Visual Studio 4 Mac to show detailed build logs