在创建iOS框架时如何解决类名冲突?

在创建iOS框架时如何解决类名冲突?,第1张

概述我正在编写一个依赖于静态第三方库Lib的iOS框架Foo,并且在获取正确链接方面存在问题. 如果Foo是一个静态库,我不会将它与Lib链接,只能将主项目与它们连接起来.但是这种方法似乎不适用于框架:链接器抱怨Lib缺少符号. 所以我采取了另一种方法并将Foo与Lib联系起来.现在链接器很高兴,但有一个明显的问题:如果主项目使用Lib出于自己的原因并链接Foo和Lib,我会得到重复的符号: Clas 我正在编写一个依赖于静态第三方库lib的iOS框架Foo,并且在获取正确链接方面存在问题.

如果Foo是一个静态库,我不会将它与lib链接,只能将主项目与它们连接起来.但是这种方法似乎不适用于框架:链接器抱怨lib缺少符号.

所以我采取了另一种方法并将Foo与lib联系起来.现在链接器很高兴,但有一个明显的问题:如果主项目使用lib出于自己的原因并链接Foo和lib,我会得到重复的符号:

Class <Something> is implemented in both <Here> and <There>.One of the two will be used. Which one is undefined.

我知道我可以停止将该应用程序与lib联系起来,一切都会好的,但我想把事情做对.怎么样?

解决方法 我能够为框架工作,尽管文档说它也应该适用于静态库.

我所做的是将主项目与Foo和lib联系起来.现在Foo有“缺少符号”的错误.选择Foo目标并转到Other linker Flags.添加-weak_framework lib和presto!链接器将停止抱怨.重复的符号运行时错误消失了.

根据docs:

The -weak_framework option tells the linker to weakly link all symbols in the named framework. If you need to link to a library instead of a framework,you can use the -weak_library linker command instead

@H_419_41@ 总结

以上是内存溢出为你收集整理的在创建iOS框架时如何解决类名冲突?全部内容,希望文章能够帮你解决在创建iOS框架时如何解决类名冲突?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1005356.html

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

发表评论

登录后才能评论

评论列表(0条)

保存