c – Xamarin iOS Native连接在模拟器上工作,在设备上重复符号

c – Xamarin iOS Native连接在模拟器上工作,在设备上重复符号,第1张

概述我正在尝试链接Xamarin的复杂的本机项目.这是Obj-C UI项目,它依赖于C库中的Native Obc-C包装(这是嵌入式项目): 我在Xcode中有本地源代码和测试项目,一切顺利. 然后我制作所有依赖项的胖库,将它们添加到xamarin绑定项目中. 在主要项目中,我必须为模拟器和设备设置gcc选项: -vvvv -cxx --registrar:static -gcc_flags "-L$ 我正在尝试链接Xamarin的复杂的本机项目.这是Obj-C UI项目,它依赖于C库中的Native Obc-C包装(这是嵌入式项目):

我在Xcode中有本地源代码和测试项目,一切顺利.

然后我制作所有依赖项的胖库,将它们添加到xamarin绑定项目中.

在主要项目中,我必须为模拟器和设备设置gcc选项:

-vvvv -cxx --registrar:static -gcc_flags "-L${ProjectDir}/../RMSDKWrapper -dead_strip -lstdc++ -lstdc++.6.0.9 -lpthread -lsqlite3 -lxml2 -ObjC -ladept-iOS -lxml-iOS -lz -lcurl -lssl -lcrypto -ldp-iOS -lePub3-iOS -L/usr/lib -I/usr/include/libxml2"

一切都适用于模拟器,但是当我尝试为Device编译时,链接器不能链接lib,因为重复符号.我使用’nm’检查了所有的libs,所有的对象都是模拟器和设备的.
我看到只有复制的对象是嵌入式包装器(rmsdk_wrapper2.xcodeproj)中的Obj-C类. nm发现包装器中的对象和从主机项目(TestRMSD.xcodeproj)的lib.但是对于模拟器来说,它解决了很好,对于设备来说都是很好的

UPD
XS版本:
https://gist.github.com/ad1Dima/eb1cc390930e191a5454260da2410c91

建立日志:
https://gist.github.com/ad1Dima/8ea8c4a271ef63efb310252234b32ae5

我需要知道如何解决这个问题.

解决方法 这个错误的可能原因:

>同一本地图书馆包含两次.
>两个不同的本机库碰巧定义相同的符号.
>本机库未正确构建,并且不止一次包含相同的符号.

您可以在这里找到链接错误的故障排除步骤:https://developer.xamarin.com/guides/ios/troubleshooting/mtouch-errors/#MT5212

总结

以上是内存溢出为你收集整理的c – Xamarin iOS Native连接在模拟器上工作,在设备上重复符号全部内容,希望文章能够帮你解决c – Xamarin iOS Native连接在模拟器上工作,在设备上重复符号所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存