ios - 当我为 iOS 编译某些东西时,使用了哪些架构?
问题描述
我尝试了解 iOS 的不同架构,以及何时需要。
我有一个Hello World示例。我的假设是否正确,如果我在 Xcode Simulator 中运行它,我需要编译所有内容,包括我的 x64 依赖项(因为它在我的计算机上运行)。
对于我附加的 iPhone,它只针对该架构进行编译。对于通用 iPhone,我的示例将是一个多架构应用程序 (arm64 arm64 armv7 armv7e),因此它可以在各种架构上运行。那是对的吗?
感谢您的洞察力。
PS因此,如果我的示例链接foo.a,但foo.a只是arm64 arm64 armv7 armv7e而不是 x64,我可以为 iPhone 编译我的应用程序,但不能在我的模拟器中运行它
解决方案
尽管上面列出了两个 arm64,但这基本上是正确的;它应该是 arm64 和 arm64e。
至于构建什么架构,取决于“仅构建活动架构”设置。典型的 Debug 配置将此设置为 Yes,因此它仅针对您所针对的设备的体系结构构建。
发布配置将此设置为否,因此它会针对“架构”中指定的所有架构进行编译,通常是$(ARCHS_STANDARD)
您列出的架构。
至于您的 PS,您是正确的,.a
只有 ARM 拱门的文件无法链接到模拟器目标。
推荐阅读
- c# - 如何在 WCF 服务上检测客户端刚刚断开连接?
- python - 如何在python中强制位数
- haskell - Haskell中的相交函数
- subquery - Sequelize Top level 使用热切加载的模型创建子查询
- visual-studio - Uninstall nuget packages installed with nuget.exe
- python - 将图像中的像素值编辑为 numpy 数组
- python - 迭代图中的标记
- angular - 延迟加载路由未打开子模块组件
- linux-kernel - 如何释放Linux内核中一个垂死的进程持有的所有锁
- asp.net - IIS Web 应用程序初始化序列反复崩溃和重新启动