How can I set up Xcode up to use the clang distributed by llvm.org instead of the one shipped by Apple?
If I download the clang binaries and install to /usr/local
and then set my compiler to Other... -> /usr/local/bin/clang
in Xcode, then I get errors of the form:
Unsupported compiler '/usr/local/bin/clang' selected for architecture 'x86_64'
Unable to determine concrete GCC compiler for file ...of type sourcecode.c.c.
UPDATE: I've found a way to make this work by symlinking /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr
to the clang+llvm-3.4-x86_64-apple-darwin10.9
root directory, but it would be far better it there was a way to set an alternative compiler for Xcode without modifying the Xcode directory tree.
The easiest option (also the easiest to reverse) is to add the CC
build flag. Go to your project's or target's build settings, and choose Editor --> Add Build Setting --> Add User-Defined Setting from the menu.
Name the flag CC
, and set the value to the path to your Clang binary.
You can choose whether you want to use this compiler for all builds, or just debug builds (this makes sense when you use experimental and/or self-modified versions of Clang, for instance).
Note that for features like autocompletion, symbolic search etc., Xcode does not use the Clang binary but other LLVM libraries distributed with Xcode. I've described how to replace those in another post (which is more or less the same approach that you took). By only changing the Clang version, you may get different warnings after compiling than those shown in the editor while typing.