Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 对于Cocoa/Mac OSX应用程序,您可以使用任何具有i386体系结构的库吗?_Objective C_Ios_Macos_Cocoa_Ios Simulator - Fatal编程技术网

Objective c 对于Cocoa/Mac OSX应用程序,您可以使用任何具有i386体系结构的库吗?

Objective c 对于Cocoa/Mac OSX应用程序,您可以使用任何具有i386体系结构的库吗?,objective-c,ios,macos,cocoa,ios-simulator,Objective C,Ios,Macos,Cocoa,Ios Simulator,我有一个用于iOS的库,它与iPhone模拟器和设备一起使用。在库上运行file命令时,我得到: libXXX.a (for architecture armv6): current ar archive random library libXXX.a (for architecture i386): current ar archive random library 现在我想为我的OSX应用程序使用相同的库。我将架构设置为32位i386。但是,我遇到了一些编译错误: Undefined

我有一个用于iOS的库,它与iPhone模拟器和设备一起使用。在库上运行file命令时,我得到:

libXXX.a (for architecture armv6):  current ar archive random library
libXXX.a (for architecture i386):   current ar archive random library
现在我想为我的OSX应用程序使用相同的库。我将架构设置为32位i386。但是,我遇到了一些编译错误:

Undefined symbols for architecture i386:
  ".objc_class_name_RTMPClient", referenced from:
      pointer-to-literal-objc-class-name in AppDelegate.o
我不确定这个错误是否是因为这个库最初是为iOS开发的(我必须删除所有的头文件都有UIKit引用,但由于没有UI功能,所以看起来是无关的。它只是一个用于打开/连接RTMP服务器的库)——还是一个链接错误?
一般来说,您可以将为iPhone开发的i386体系结构库与Mac应用程序一起使用吗?

好的,您对术语有点困惑

IOS:

应用程序主要是使用ARM架构上的IOS设备的基础和UIKIT框架来构建的。i386是模拟器,它基于一组私有Xcode框架构建,以使其“正常”运行。静态库必须针对这两种平台进行编译,并绑定到“通用二进制软件包”中,以便它们可以在这两种平台上运行

OSX:

应用程序内置于i386体系结构的Cocoa和Appkit中。但是,它们没有链接到相同的Xcode框架,因此它们不能在iOS设备上运行,必须在OSX环境中执行

要使框架“完全不依赖设备”,必须为每种类型的硬件编译一个库,并将它们捆绑在一起

因此,这是一个链接器错误,因为您将RTMPClient文件作为库的一部分,但它是为错误的体系结构编译的,或者不是“通用的”。

是的——我想我的问题是——有没有办法让它在Mac OSX上工作?我猜他们为iOS模拟器编译了一个版本,所以也许因为它是i386,我可以知道如何使它工作?