Jer*_*man 109
架构是你想要构建的,有效的架构是你可以设想用你的代码库构建的架构.
所以也许你只想为armv7s构建你的二进制文件,但是相同的源代码可以很好地编译armv7和armv6.所以VALID_ARCHS = armv6 armv7 armv7s,但你设置的ARCHS = armv7s原因是你真正想要用你的代码构建的所有内容.
或者,在Apple-ese中:
ARCHS(架构)
以空格分隔的标识符列表.指定二进制文件所针对的体系结构(ABI,处理器模型).当此构建设置指定多个体系结构时,生成的二进制文件可能包含每个指定体系结构的对象代码.
和:
VALID_ARCHS(有效架构)
以空格分隔的标识符列表.指定可以为其构建二进制文件的体系结构.在构建期间,此列表与ARCHS构建设置的值相交; 结果列表指定二进制文件可以运行的体系结构.如果生成的体系结构列表为空,则目标不生成二进制文件.
来源:Xcode构建设置参考
在实践中,您可以VALID_ARCHS独自离开,不用担心更改它,只需ARCHS设置您想要构建的体系结构即可.通常,您将Debug构建设置为just NATIVE_ARCH,因为您只想为将要测试/运行它的机器构建调试版本,并为您计划支持的所有体系结构构建Release版本.
Valid Architectures 从Apple文档中,我们知道Xcode将构建的二进制文件是与.相交的列表Architectures。
所以,我不认为杰里米的回答是正确的,正如他所说:
\n\n\n\n\n因此,也许您只想为armv7s构建二进制文件,但相同的源代码可以
\n
很好地编译为armv7和armv6。所以VALID_ARCHS = armv6 armv7 armv7s,但是你设置了 \n ARCHS = armv7s 因为这就是你真正想要用你的代码构建的。
当你设置VALID_ARCHS = armv6 armv7 armv7s,然后设置ARCHS = armv7s,二进制Xcode将构建的结果是armv7s\xef\xbc\x8cit不能与armv6/armv7兼容。
如果你想兼容armv6/armv7/armv7s\xef\xbc\x8c你必须设置 VALID_ARCHS = armv6 armv7 armv7s和ARCHS = armv6。这样,二进制Xcode构建的结果是armv6,并且它可以像arm一样在armv6/armv7/armv7s上运行良好处理器向后兼容。
| 归档时间: |
|
| 查看次数: |
35195 次 |
| 最近记录: |