iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为iOS编译C源代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些用C编写的现有源代码,我想构建并包含在我的iOS项目中.整个源包非常大,使用现有的Makefile和GCC构建.它正在生成静态库(.a文件),我很乐意转移到我的iOS项目.但是,Makefile生成的静态库是针对x86处理器的,这显然不适用于iOs.

@H_404_8@

有没有办法可以切换GCC来构建ARMv7 / ARM64,而无需更改现有源(在大多数情况下)?我知道有GCC的-march开关,或者你可以下载ARM特定的GCC编译器,所以我知道构建不同于构建机器的架构的一般概念.@H_404_8@

要在Mac OS上构建ARM,我是否必须下载不同的GCC编译器或者是否内置于认GCC中?@H_404_8@

我很遗憾这里对基本概念缺乏了解;我主要是Java和Objective-C开发人员,因此构建不同架构的源代码对我来说是一个主要的外国概念.@H_404_8@

解决方法

然GCC支持许多cpu架构和平台,但它通常是为单个架构和平台构建的.要为ARM编译,通常需要适当地针对ARM交叉编译GCC.

@H_404_8@

适用于所有体系结构的MacOSX和iOS的认系统编译器已经有一段时间了(已经有一段时间了(开发工具中提供的GCC apple的最后一个版本是嘎吱嘎吱和过时的,绝对不支持ARMv8).@H_404_8@

获得铿锵声的常用方法是安装Xcode(从App Store免费).安装程序(以及Xcode的UI)中有一个选项可以安装命令行工具包.这会将/usr/bin中的sym-links安装到编译器中,并安装一些您可能期望的其他内容,例如make.@H_404_8@

clang(大多数)命令行与gcc兼容,而且,你会发现如果你在安装了dev-tools的Mac上从命令行运行gcc,你实际上就会得到clang.@H_404_8@

@H_404_8@

$gcc --version
Configured with: --    prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix

clang在MacOSX上附带ARMv7,ARMv8,i686,x86_64,并且可以配置为从命令行编译任何这些(参见documentation)@H_404_8@

鉴于上述情况,您的代码很可能会使用现有的makefile对编译器标志进行最小的更改.您可能希望阅读lipo的文档 – 它允许您生成多架构二进制文件.@H_404_8@

大佬总结

以上是大佬教程为你收集整理的为iOS编译C源代码全部内容,希望文章能够帮你解决为iOS编译C源代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。