【发布时间】:2015-02-04 14:04:46
【问题描述】:
我有一些用 C 语言编写的现有源代码,我想构建并包含在我的 iOS 项目中。整个源代码包非常大,是使用现有的 Makefile 和 GCC 构建的。它正在生成我希望转移到我的 iOS 项目的静态库(.a 文件)。但是,Makefile 生成的静态库是针对 x86 处理器的,这显然不适用于 iOS。
有没有一种方法可以将 GCC 改为为 ARMv7/ARM64 构建,无需更改现有源代码(在大多数情况下)?我知道 GCC 有 -march 开关,或者您可以下载 ARM 特定的 GCC 编译器,所以我知道为不同于构建机器的架构构建的一般概念。
要在 Mac OS 上构建 ARM,我是否必须下载不同的 GCC 编译器,或者该功能是否内置在默认 GCC 中?
对于这里的基本概念缺乏了解,我深表歉意;我主要是一名 Java 和 Objective-C 开发人员,因此为不同架构构建源代码对我来说是一个非常陌生的概念。
【问题讨论】:
-
OS X 不再附带 GCC。它带有
clang,并且clang确实支持交叉编译到iOS。事实上 - 只需将.c文件放到您的项目中,与您放置.m文件的位置相同。它们将与 Objective-C 代码一起编译得很好(请记住,Objective-C 是 C 的适当超集。如果您可以交叉编译 Objective-C,那么您也可以交叉编译 C。)
标签: ios c gcc arm cross-compiling