加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:45:29 所属栏目:百科 来源:网络整理
导读:我正在尝试链接Xamarin的复杂的本机项目.这是Obj-C UI项目,它依赖于C库中的Native Obc-C包装(这是嵌入式项目): 我在Xcode中有本地源代码和测试项目,一切顺利. 然后我制作所有依赖项的胖库,将它们添加到xamarin绑定项目中. 在主要项目中,我必须为模拟器和设
我正在尝试链接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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读