【发布时间】:2014-03-05 23:08:13
【问题描述】:
我使用跨平台代码,这意味着我必须为 iOS 构建开源 C++ 项目才能在我的 iOS 应用程序中使用它们。有时我必须构建自己的项目,有时我会得到一个不错的 CMake 设置,但似乎没有两个项目在这两个字段上具有完全相同的设置。
有些是“armv7”,有些是“armv7 armv7s”,还有一些是“armv7 armv7s arm64”。我知道“armv7”是指特定一代的设备硬件。但这是否意味着如果我只设置“armv7”,我的应用程序将无法在 armv7s 或新的 64 位 iPad 上运行?这些多种架构是否像拥有胖库一样,每个架构都有单独的副本?
然后对于“架构”,还有更多选项。诸如“标准架构(armv7,armv7s)”之类的选项以及诸如“$(ARCHS_STANDARD_32_64_BIT)”之类的其他选项。我经常发现必须更改这些内容才能构建内容,而不会出现关于 i386 的错误。事实上,一个 iOS 项目实际上是为 Intel(模拟器)和 Arm 构建的,这让我更加困惑。
比起“使用此设置”的答案,我真的在寻求更高层次的解释。我想确信我的应用程序可以在预期的设备上运行,因为我买不起现在存在的所有不同版本的 iPad。作为参考,我想支持 iPad 2 及更高版本,并且只支持 iOS 6/7。
【问题讨论】:
-
没有人真正知道。你只是乱搞设置,直到它起作用。