5

我已经安装了 xcode 5 并注意到 gcc 编译器已被弃用。假设我不想切换到 Apple LLVM 5.0,我的问题来了:

是否可以使用 iOS7 SDK 并仍然在 llvm-gcc-4.2 中编译?

如果是,该怎么做?

如果您不知道这是否可能,请不要发布诸如“use clang, man”之类的答案,因为他们实际上并没有回答我发布的问题。

4

4 回答 4

5

Apple 已在 XCode 5 中删除了对 llvm-gcc-4.2 的支持。即使您安装基础 sdk 并将其更改为 6.1 sdk,您也无法使用 llvm-gcc-4.2 进行构建。因此,如果您想使用 llvm-gcc-4.2,您唯一的选择是继续使用 XCode 4.x。

于 2013-09-19T15:22:36.143 回答
1

Xcode 5 中不包含 LLVM-GCC。

我从 https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_5_0.html

所以问题是用什么来代替 llvm-gcc ?

于 2013-09-28T14:01:40.143 回答
1

是否可以使用 iOS7 SDK 并仍然在 llvm-gcc-4.2 中编译?

如果您想使用 llvm-gcc-4.2编译整个应用程序:可能不会。我自己没有检查过这个,但是 iOS 7 头文件只需要添加一个对 llvm-gcc-4.2 中缺少的 clang 功能的单一依赖,你就会陷入编译错误。您也许可以破解它们,但吸收它并升级到 clang 可能会更容易(更不用说更面向未来了)。

如果您只需要使用 llvm-gcc-4.2 编译您的一些应用程序:当然,只要您不需要在使用 llvm-gcc-4.2 构建的部分中导入任何 iOS 7 标头。

您可以尝试将有问题的部分移至静态库,使用 gcc 编译,然后链接到使用 clang 构建的最终应用程序。您将无法以 64 位为目标,因为 llvm-gcc-4.2 不能生成 armv8 代码,但它应该可以正常工作。

一个警告:如果您的静态库使用 C++,由于 ABI 和 std 库的差异,可能会出现一些问题。但至少这些都是可以解决的问题。

于 2013-09-29T16:31:59.383 回答
0

你可以使用homebrew来安装你需要的 gcc 版本。很可能您的所有 Makefile 都需要更正(叹气)

我做了:

brew search gcc

结果:

homebrew/versions/gcc43     
homebrew/versions/gcc45 
homebrew/versions/gcc47    
homebrew/versions/gcc49
homebrew/versions/gcc44
homebrew/versions/gcc45
homebrew/versions/gcc48    
homebrew/versions/llvm-gcc28
homebrew/dupes/apple-gcc42
于 2013-09-29T15:55:24.393 回答