ios – 用于体系结构的未定义符号..在动态框架中

ios – 用于体系结构的未定义符号..在动态框架中,第1张

概述我正在开发一个iOS框架,它拥有几个第三方框架,并使用UnitySendMessage C方法与Unity通信. 我想创建一个动态框架(支持iOS8),但我偶然发现以下编译错误: Undefined symbols for architecture arm64: "_UnitySendMessage", referenced from: ....ld: symbol(s) not fou 我正在开发一个iOS框架,它拥有几个第三方框架,并使用UnitySendMessage C方法与Unity通信.

我想创建一个动态框架(支持iOS8),但我偶然发现以下编译错误:

Undefined symbols for architecture arm64:   "_UnitySendMessage",referenced from: ....ld: symbol(s) not found for architecture arm64

这个方法在我的.m类中调用,并在我的.h文件中声明如下所示:

voID UnitySendMessage(const char* obj,const char* method,const char* msg);

当编译为静态库时,它编译并正常工作,但我在嵌入式第三方框架上遇到其他崩溃.由于我无法控制这些框架,我更喜欢创建一个动态框架.

我已经尝试了很多基于我​​能找到的其他帖子的编译器设置但是由于嵌入式框架我需要支持多种架构.这些设置都不适合我.

此外,我试图创建另一个静态框架并将其嵌入到我的“父”动态框架中.我用lipo检查这个,似乎添加了架构,但我仍然得到相同的未定义符号错误.

我已经在这工作了2天,所以我真的希望有人能指出我正确的方向

UPDATE

添加标志“-undefined dynamic_lookup”解决了编译问题.但是,当在统一项目中添加动态框架时,它会在触发方法“UnitySendMessage”时崩溃.

dyld`dyld_fatal_error:

*在创建静态框架时,该方法不会崩溃并且工作正常.仍然不明白这种情况与动态框架有什么区别.

该方法在我的.h文件中声明如下:

#ifdef __cplusplusextern "C" {    voID UnitySendMessage(const char* obj,const char* msg);}#endif
解决方法 确保构建设置中的框架目标仅构建活动体系结构=否

如果您使用cocoapod来管理您的依赖项检查pod目标并仅将Build Active架构设为= NO

总结

以上是内存溢出为你收集整理的ios – 用于体系结构的未定义符号..在动态框架中全部内容,希望文章能够帮你解决ios – 用于体系结构的未定义符号..在动态框架中所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存