Use gcc 4.2 in Xcode 4.2 and iOS SDK 5.0

前端 未结 3 1009
星月不相逢
星月不相逢 2020-12-16 06:42

I just upgraded to Xcode 4.2 and iOS SDK 5 earlier today. But everything seems different with new compilers.

There are two \"Compiler for C/C++/Objective-C\" options

3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-16 07:36

    Here is a way to enable compiling with gcc 4.2 in xcode 4.2. Most of this is done via command line so when you see lines like this: [ 15:30 jon@MacBookPro / ]$, you need to open up a Terminal and run the command after the $.

    No files or directories are removed or deleted in this process, so it is easy to undo if you need to compile with LLVM in the future.

    1. Download - but do not install yet - xcode_4.1_for_lion.dmg or xcode_4.1_for_snow_leopard.dmg

    2. Now, follow these steps to install Xcode 4.1 into /Developer-4.1:

      1. Backup the working /Developer directory (where Xcode 4.2 is installed)

      2. [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.2
        
      3. Run the Xcode 4.1 installer using the default install location (/Developer)

      4. Move the new Xcode 4.1 installation to /Developer-4.1:

        [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer /Developer-4.1
        
      5. Move the Xcode 4.2 developer directory back to /Developer:

        [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer-4.2 /Developer
        
    3. Edit the Xcode 4.2 GCC 4.2.xcspec file to get gcc 4.2 to show in the list of compiler options [1]:

      [ 15:30 jon@MacBookPro / ]$ sudo vi "/Developer/Library/Xcode/PrivatePlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/GCC 4.2 (Plausible Blocks).xcplugin/Contents/Resources/GCC 4.2.xcspec"
      
      • Change lines 41 and 42 from this:

        ShowInCompilerSelectionPopup = NO;
        IsNoLongerSupported = YES;
        
      • To This:

        ShowInCompilerSelectionPopup = YES; 
        IsNoLongerSupported = NO;
        
    4. Backup the Xcode 4.2 iOS/Simulator Framework usr directories:

      [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr.backup
      [ 15:30 jon@MacBookPro / ]$ sudo mv -v /Developer/Platforms/iPhoneSimulator.platform/Developer/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr.backup
      
    5. Copy Xcode 4.1 iOS/Simulator Framework usr directories to Xcode 4.2:

      [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/usr /Developer/Platforms/iPhoneOS.platform/Developer/usr
      [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/usr /Developer/Platforms/iPhoneSimulator.platform/Developer/usr
      
    6. Copy the gcc and info iOS SDK library directories from Xcode 4.1 to Xcode 4.2 [2]:

      [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/gcc /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/gcc
      [ 15:30 jon@MacBookPro / ]$ sudo cp -rv /Developer-4.1/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib/info /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/info
      
    7. Compile using gcc-4.2!

      Screenshot of CGG 4.2 in xcode 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/lib directories but the iPhoneSimulator.platform SDK does not

提交回复
热议问题