我正在使用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个警告
能否请您帮忙解决此问题。
答案 0 :(得分:0)
我从上述错误中发现的事情
您正试图为xamarin.mac项目选择iPhone,但绑定不正确。可能是因为您已经创建了Mac支持的绑定项目,并且正尝试使用iPhone配置或其他方式进行构建。
在xcode中构建与xamarin iOS项目的绑定库(例如.a文件)时是否选择了相同的体系结构?
同时选中这两个选项,您将得到答案。
答案 1 :(得分:0)
在错误日志中,您似乎缺少本机库需要运行的某些框架或库。
如果这是一个Agora MacOS SDK(AgoraRtcEngineKit.framework),则将需要添加几个框架和库作为链接器标志。 框架:
图书馆:
我怎么知道?
通常,本机库提供示例应用程序,在这里您可以查看所需的框架和库:
可以肯定的是,请转到Visual Studio For Mac 2017首选项,并将生成日志的详细程度设置为诊断,然后将失败的生成日志发布到gist.github.com