iPhone库:文件不是必需的体系结构
我已经搜索了几个小时,但是我仍然不知道我的配置有什么问题。 我的项目使用自编库(myLib)。此库编译为仅适用于模拟器的,并且在那里工作得非常好 为了让它也能为我的iPhone设备编译,需要做哪些更改 这是我目前的警告:iPhone库:文件不是必需的体系结构,iphone,linker-errors,Iphone,Linker Errors,我已经搜索了几个小时,但是我仍然不知道我的配置有什么问题。 我的项目使用自编库(myLib)。此库编译为仅适用于模拟器的,并且在那里工作得非常好 为了让它也能为我的iPhone设备编译,需要做哪些更改 这是我目前的警告: ld: warning: in /.../myLib.a, file is not of required architecture 这是我的配置(myLib.a) 我找到了很多解释此错误原因的文章,但我找不到解决方案: 模拟器在x86上运行 架构,而设备使用 ARM架构
ld: warning: in /.../myLib.a, file is not of required architecture
这是我的配置(myLib.a)
我找到了很多解释此错误原因的文章,但我找不到解决方案:
模拟器在x86上运行
架构,而设备使用
ARM架构
要让我的库在iPhone上正常工作,我需要做哪些更改 谢谢
编辑: 到目前为止我所做的:
文件,该文件不是必需的架构
错误
我也试过了(谢谢你的支持)。
它解释了如何使用shell脚本构建项目。
然而,XCode不断抱怨库文件的体系结构错误,构建失败
这一定是一个非常愚蠢的初学者错误。你需要为英特尔编译你的库,这样模拟器就可以使用它(我想你已经这么做了),然后为ARM编译它,这样它就可以在iPhone上运行了。然后必须合并这两个库。有不同的方法来实现这一点,或者使其更加自动化 以下是一些帮助您的链接:
您需要将两个.a文件都添加到新项目中,一个是为设备构建的文件(build/$config iphoneos),另一个是为sim卡构建的文件(build/$config iphonesimulator)。在把它们放进去之前,一定要给它们起不同的名字。这就是admob和类似产品发布静态LIB的方式 我也遇到了同样的问题。但似乎您不需要将两个
.a
文件拖到应用程序项目中来解决此问题。这就是我所做的:
应用程序的配置是什么?应用程序与库具有相同的配置。(我找不到任何区别)。你需要什么附加信息?当你把库放到你的新应用程序中时,源位置是什么?LabBaly只是作为参考添加的。你也可以考虑将库项目添加到App Project中,以便两者一起构建。这可能有助于解决您遇到的任何差异。“6)为所有SDK目标(如模拟器、iPhone设备等)构建新的静态库。”您的第一个链接是我的问题。我不知道怎么做。你的第二个链接是关于类似的东西,但不是关于静态库。(除了指向stormyprods博客的链接)在项目菜单下,您的活动SDK会说什么?活动SDK:
iPhone设备3.1(基本SDK)
Active architecture:armv6
我想我从来没有遇到过任何问题。我做了一个新项目,选择了Cocoa Touch库,然后为设备和模拟器构建。ARM和i386。这里有另一个地方可以看:如果您有这样的倾向,您可以使用lipo将这两个文件合并到一个universl二进制文件中