mar*_*ijn 6 frameworks compiler-errors dynamic objective-c ios
我正在一个iOS框架上工作,该框架包含几个第三方框架,并使用UnitySendMessage C方法与Unity进行通信。
我想创建一个动态框架(支持iOS8 +),但偶然发现以下编译错误:
Undefined symbols for architecture arm64:
"_UnitySendMessage", referenced from:
....
ld: symbol(s) not found for architecture arm64
Run Code Online (Sandbox Code Playgroud)
此方法在.m类中调用,并在.h文件中如下所示声明:
void UnitySendMessage(const char* obj, const char* method, const char* msg);
Run Code Online (Sandbox Code Playgroud)
当作为静态库进行编译时,它可以编译并正常工作,但是在嵌入式第三方框架上出现了其他崩溃。因为我无法控制这些框架,所以我更喜欢创建一个动态框架。
我已经根据我可以找到的所有其他帖子尝试了许多编译器设置,但是由于嵌入式框架的原因,我需要支持多种体系结构。没有一个设置对我有用。
我也尝试创建另一个静态框架,并将其嵌入到我的“父”动态框架中。我用lipo检查了一下,似乎添加了体系结构,但是我仍然遇到相同的未定义符号错误。
我已经为此工作了两天,所以我真的希望有人可以指出正确的方向
更新
添加标志“ -undefined dynamic_lookup”解决了编译问题。但是,在将动态框架添加到统一项目中时,触发“ UnitySendMessage”方法时,它会崩溃。
dyld`dyld_fatal_error:
Run Code Online (Sandbox Code Playgroud)
*创建静态框架时,该方法不会崩溃并且可以正常工作。仍然不了解在这种情况下使用动态框架有什么区别。
该方法在我的.h文件中声明如下:
#ifdef __cplusplus
extern "C" {
void UnitySendMessage(const char* obj, const char* method, const char* msg);
}
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |