使用iOS 7 SDK和llvm-gcc-4.2

时间:2013-09-19 09:00:30

标签: ios xcode ios7 llvm-gcc

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

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

如果是,请该怎么做?

如果你不知道是否可能,请不要发布像&#34;使用clang,man&#34;这样的答案,因为他们实际上没有回答< / em>我发布的问题。

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

LLVM-GCC未包含在Xcode 5中。

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

所以问题是使用什么而不是llvm-gcc?

答案 2 :(得分:1)

  

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

如果您想使用llvm-gcc-4.2编译整个应用:可能不是。我自己没有检查过这个,但是iOS 7标题只需要在llvm-gcc-4.2中缺少一个clang功能上添加一个依赖项,你就会遇到编译错误。你可能能够通过它们破解你的方式,但是将它吸收并升级到clang可能会更容易(更不用说更具前瞻性了)。

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

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

有一点需要注意:如果你的静态lib使用C ++,那么由于ABI和std库差异可能会出现一些问题。但这至少是可以解决的问题。

答案 3 :(得分: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