开发者

Updating Apple g++/gcc

开发者 https://www.devze.com 2023-04-10 04:59 出处:网络
What is the difference between Apple gcc and GNU gcc? Is Apple gcc a superset of the standard one? The g++ version information in my OSX shows:

What is the difference between Apple gcc and GNU gcc? Is Apple gcc a superset of the standard one?

The g++ version information in my OSX shows:

$ g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based o开发者_StackOverflown Apple Inc. build 5658) (LLVM build 2335.15.00)

Some of the latest features of C++11 are in gcc 4.3/4.4 as per this. Is there any newer version of Apple gcc I can upgrade to. if so, how can i do it? I have Xcode 4.1


Well, for the first part, Apple in this case is using the LLVM backend for g++ as the default g++. Apple also installs the wonderfully named clang and clang++ front-ends for LLVM. However, there is absolutely nothing stopping you from installing newer branches of GCC; MacPorts has packages for everything up to 4.6. If you look for "APPLE ONLY" in the gcc man page, you can see what won't be available outside of Apple branches.


Beside the already mentioned llvm-gcc and clang, there is also an Apple-supplied gcc-4.2 (without LLVM backend) at /usr/bin/gcc-4.2 in Xcode 4.1. But do not overwrite the Apple-supplied versions in /usr/bin. All three support a superset of features include multi-arch support and multi-abi support not found in the vanilla GNU distributions and many third-party packages depend on these features in OS X. If you install something via MacPorts or from source, it will be installed to a different path, like /opt/local/bin or /usr/local/bin. Use PATHs or environment variables to manage which compiler you use.


You can use macport to install newer versions. You can download it here. Once you have installed gcc with macport, you can use it with xcode by adding an user-defined setting to your build :

- Go to the build setting of your project
- Click on the add build setting button
- Choose user-defined setting
- Name it CC
- In the value field, put the path of the gcc version installed by macport.


One thing that definitely is present in the Apple GCC branch but not in GNU GCC is blocks.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号