In my Xcode 4 installation, I only have 2 compiler options:
- Apple LLVM compiler 3.0
- GCC LLVM 4.2
In many Xcode examples I have seen that GCC 4.2 is shown as a third option, but this simply isn’t there. I intentionally did a clean installation of XCode 4. Is there a standard method for adding GCC 4.2 if it’s not already there? One of my projects requires that I use GCC (and not GCC LLVM), the other projects I am happy with GCC LLVM, so it’s only an issue for that one.
Here is a way to enable compiling with gcc 4.2 in xcode 4.2. This is mostly done via command line so when you see lines starting with:
[ 15:30 jon@MacBookPro / ]$, you need to open up Terminal.app and run the command that starts after the$.Download – but do not install yet – xcode_4.1_for_lion.dmg or xcode_4.1_for_snow_leopard.dmg
Now, follow these steps to install Xcode 4.1 into
/Developer-4.1:Backup the working
/Developerdirectory (where Xcode 4.2 is installed)Run the Xcode 4.1 installer using the default install location (
/Developer)Move the new Xcode 4.1 installation to
/Developer-4.1:Move the Xcode 4.2 developer directory back to
/Developer:Edit the Xcode 4.2
GCC 4.2.xcspecfile to get gcc 4.2 to show in the list of compiler options [1]:Change lines 41 and 42 from this:
To This:
Backup the Xcode 4.2 iOS/Simulator Framework
usrdirectories:Copy Xcode 4.1 iOS/Simulator Framework
usrdirectories to Xcode 4.2:Copy the
gccandinfoiOS SDK library directories from Xcode 4.1 to Xcode 4.2 [2]:Compile using gcc-4.2!
This is a blog post I’ve written with a little more info about this process. Feel free to leave a comment on the blog if you run into any issues or have any questions.
[1] If opening from a command line (using something like
vi,emacs,nano, etc) make sure to either enclose the path in quotes "/long path/with spaces/in it/file.xcspec" or escape the spaces /some/long\ path/with\ spaces/in\ it/file.xcspec[2] This is necessary because the iPhoneOS.platform SDK has its own seperate
/usr/libdirectories but the iPhoneSimulator.platform SDK does not