首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode中的“架构”和“有效架构”选项到底是什么意思,我应该为iOS项目设置什么?

Xcode中的“架构”和“有效架构”选项到底是什么意思,我应该为iOS项目设置什么?
EN

Stack Overflow用户
提问于 2014-03-06 07:08:13
回答 1查看 2.4K关注 0票数 0

我使用跨平台代码,这意味着我必须为iOS构建开源C++项目,以便在我的iOS应用程序中使用它们。有时我必须构建自己的项目,有时我会得到一个很好的CMake设置,但似乎没有两个项目对这两个字段具有完全相同的设置。

有些是"armv7",有些是"armv7 armv7s“,还有一些是"armv7 armv7s arm64”。我知道"armv7“指的是特定一代的设备硬件。但这是否意味着,如果我只设置"armv7“,我的应用程序将不能在armv7s或新的64位iPad上运行?这些多架构是否像拥有fat库一样,每个架构都有单独的副本?

然后,对于“架构”,有更多的选择。像“标准架构(armv7,armv7s)”和其他像"$(ARCHS_STANDARD_32_64_BIT)“这样的选项。我经常发现必须更改这些才能构建内容,而不会出现关于i386的错误。事实上,iOS项目实际上是为英特尔(模拟器)和Arm构建的,这让我更加困惑。

我真的想要一个更高层次的解释,而不是一个“使用这个设置”的答案。我希望我的应用程序能够在它打算运行的设备上运行,因为我负担不起现有的所有不同版本的iPad。作为参考,我只想支持iPad 2和更高版本,以及iOS 6/7。

EN

回答 1

Stack Overflow用户

发布于 2014-03-06 09:11:32

这些是不同的指令集。如果你正在构建一个库,你需要构建下游应用程序需要的所有不同的指令集/架构,否则当你尝试构建应用程序时,你会得到链接器错误。

这对于模拟器来说比较复杂,它需要英特尔x86或x86_64而不是ARM。

根据您选择的内容,编译器将创建包含多个体系结构的fat库。

在运行时,不同的指令集之间有一些兼容性(例如,32bit will run on 64bit),但这在链接期间没有帮助。如果你正在编译64位,那么你所包含的库将需要64位。

因此,为devices you're targeting设置了简短的答案。你可能不再需要armv6了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22211382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档