From: Eric W. <ewm...@gm...> - 2014-01-24 04:37:36
|
Here are some high level notes about clang and Apple/Xcode (with some redundancy with what's been said already. - Apple no longer ships gcc with Xcode. - gcc has been an alias for llvm-gcc for a long time (not real gcc). This was a transitional tool to help people move from gcc to clang as clang was being brought up to snuff. llvm-gcc is now considered obsolete/abandoned. Apple advises that nobody should be using llvm-gcc now. - Try not to make decisions based on version numbers of clang. Apple actually renames and uses a different versioning scheme for the ones they ship with Xcode compared to the official mainline. I believe this CMake thread discusses it a little: https://www.mail-archive.com/cma...@cm.../msg07575.html - Instead of using versions, clang wants you to leverage the __has_feature and other availability macros. - libc++ is a brand new C++ standard library replacement designed for clang. libstdc++ is the gcc C++ standard library. clang has been using the GNU one because it took a long time for them to build a new one from scratch. libc++ is now far enough along that Apple thinks some people can start using it. However, it still lags behind libstdc++ and is not feature complete. So depending on things like what Xcode you are using, when you first created your Xcode project, or if you changed certain project settings will dictate which C++ library you link to. Future Xcode versions are free to change the defaults. I believe the two libraries are not binary compatible, so those who build libraries need to pay extra attention. -Eric -- Beginning iPhone Games Development http://playcontrol.net/iphonegamebook/ |