nico
nico

Reputation: 1077

Three20 & XCode4: Unsupported compiler 'GCC 4.2' or Interface Declarations not found

Over one Year ago I made a project in our company to work with Three20 and iOS3.1.3. Up to 4.*, it worked fine with some iPhones. I had no need to correct anything or even recompile the package. Even later the Retina-Display of an iPhone4 did not make any problems.

Now on iOS5, the ipa didn´t work anymore. So I had to "re-setup" the whole thing.

iOS3 -> 5 XCode 3.2 -> 4.2 Three20 (old) -> 1.09 (downloaded the zip from here: https://github.com/facebook/three20)

After many tries, I wanted a clear state. So I deleted the old Three20-things in the project settings and simply integrated it like mentioned here: http://three20.info/article/2011-03-10-Xcode4-Support again.

Now I am getting:

Check dependencies

Unsupported compiler 'GCC 4.2' selected for architecture 'armv6'
Unsupported compiler 'GCC 4.2' selected for architecture 'armv7'

In former tries, I simply changed the compiler in each Three20-Module to the Apple LLVM 4.2 and removed all arm6-mentionings, as the oldest iPhone to use is now 3Gs with 5.0.1. The 3G can use the old ipa, that worked formerly. This only changed the errors to other ones.

So, is anyone expierienced with this problems?

Edit: After I deleted all armv6-occurences, "surprisingly" only the second

Unsupported compiler 'GCC 4.2' selected for architecture 'armv7'

appears.. in principle no clue, BUT: build for archiving works and building for the simulator both work now. only i can not deploy a real iPhone 4 5.0.1.

Upvotes: 1

Views: 3287

Answers (3)

iBobo
iBobo

Reputation: 724

I solved this problem removing an old "Build" folder inside the Three20 folder.

Upvotes: 0

TinkerTank
TinkerTank

Reputation: 5805

I've seen this problem before with other projects. In my experience, xCode often struggles with old projects, especially big ones with other projects / frameworks linked in.

The 'official' way;

  1. try to compile the project.
  2. Navigate to the error by clicking the red exclamation mark in the central console. (upper-middle of the app)
  3. scroll down in the list to the left, find the red exclamation mark.
  4. click the project (blue icon, possible .xcodeproj extension) in the list to the left that's giving the error.
  5. go to 'Build settings'
  6. Find the 'Compiler for C/C++/Objective-C' setting in the 'Build Options' category.

  7. Change the compiler from GCC 4.2 to a supported one. (Now: Apple LLVM or LLVM GCC)

This approach might or might not work for you. It might be my limited understanding, but it seems that in some cases, old settings 'linger' without begin accessible through the GUI, but they can still be causing problems. Moreover, if this error appears in a framework rather than a project, you're out of luck since you can't always change the settings for those.

In that case:

The dirty way;

  1. Use 'grep' to find the incorrect settings, should be in .pbxproj files. Open a command line of your project, and do:

    grep -r "GCC_VERSION" * | grep 4.2

  2. You'll find lines like these:

    GCC_VERSION = 4.2;

  3. Open the file in your favorite text editor, and change to:

    GCC_VERSION = com.apple.compilers.llvmgcc42;

    • or if you want to experiment with the latest compiler:

    GCC_VERSION = com.apple.compilers.llvm.clang.1_0;

    • Instead of using these values, you can look in the main project file or another project that works, to see which value is used there.

If that doesn't help either;

After converting projects between too many versions of xCode, eventually it will actually save you time to start with a clean slate, open a new empty xCode project, and manually drag-in all code from your old project.

Upvotes: 3

aporat
aporat

Reputation: 5932

Make sure you change the complier settings for the extensions as well. If it still says "Unsupported compiler", you probably forgot to change it in one of the three20 sub projects.

Also, check that you have both armv6 and armv7 under the Architectures

Can you send a screenshot of the build settings you have?

Upvotes: 1

Related Questions