我搜索了几个小时,但我仍然不知道我的配置有什么问题。 我的项目使用自编写的libray(myLib)。这个库被编译为模拟器 ,它在那里工作得很好。
必须更改哪些内容以便为我的 iPhone设备进行编译?
这是我目前的警告:
ld: warning: in /.../myLib.a, file is not of required architecture
这是我的配置(myLib.a)
我发现很多文章解释了这个错误的原因,但我找不到解决方案:
模拟器在x86上运行 架构,而设备使用 ARM架构。
我需要更改什么才能让我的库在iPhone上运行?
由于
编辑:
到目前为止我做了什么:
答案 0 :(得分:3)
您需要将.a文件(为设备构建的文件(build / $ config-iphoneos))和为sim(build / $ config-iphonesimulator)构建的文件添加到新项目中。确保在放入它们之前对它们进行不同的命名。这就是admob和类似产品提供静态库的方式。
答案 1 :(得分:1)
你需要为英特尔编译你的库,以便模拟器可以使用它(我已经收集你已经完成),然后为ARM编译它,这样它就可以在iPhone上运行。然后你必须合并这两个库。有不同的方法可以实现这一目标,或者使其更加自动化。
以下是一些可以帮助您的链接:
http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html http://www.clintharris.net/2009/iphone-app-shared-libraries/
答案 2 :(得分:0)
我也遇到了同样的问题。但似乎您不需要将两个.a
文件拖到应用程序项目中以解决此问题。这就是我所做的: