iPang The adventures of Pang on MacOS

 

I recently had a user who tried to run Pang on MacOS and there were a few incompatibilities.

 

So today, I fired up my trust old iMac and created my first ever C++ Application in XCode 4.1 and I have to say, it really wasn’t all that pleasant of an experience!

 

 

First off, about Pang.  There are a few small changes that don’t work on the iMac using GCC 4.2.  First is there is no tchar.h header file.  On the same thought, Microsoft’s _tmain is not portable and the entire targetver.h header file doesn’t work.  Reality is, none of these are really a big deal as we are not using any Windows specific features, nor are we supporting Unicode parameters to our main(), so it is all a pretty easy fix.  Simply delete all of these includes, remove targetver.h completely and change make to a traditional main().

 

 

Code wise, there was one gotcha.  GCC 4.2 does not support calling a nest enum’s name.  For example if you have the following:

struct Colour { enum DefinedColours { Red, Green, Blue }; };

 

You can’t do this:

Colour::DefinedColours::Red;

 

Instead you have to do this:

Colour::Red;

 

Which is a shame as I find the one much more readable than the other, but no big loss.  Going forward I will be compiling on both Windows using Visual Studio and Mac OS using XCode/GCC 4.2, so if you are following along using a Mac ( or GCC with CodeBlocks ) the code will be guaranteed to work.

 

 

Now, about XCode.  I will admit this is my first real experience with it.  I played around with 3.x when I first looked into iOS development but never really got a chance to try out 4.1.  I like the idea that they went to a single Window, as a VC developer  XCode 3.x was very alien.  That said, this is about where my likes end.

 

Nothing was intuitive, intellisense ( or whatever it is called in non-Microsoft parlance ) is SLOOOOOOOWWWWWW, the interface is extremely cluttered, the project/scheme system seems odd ( with time this might improve ), the debugging experience was not fun ( weird focus issues with my running application ).  Then worst of all, I had to spent a good 20 minutes figuring out where the hell my compiled application even ended up!

 

Through this experience, as a complete newbie I had to Google a lot and I noticed two trends.  First, all the documentation for earlier versions is useless… its like every single keyboard shortcut and menu was changed completely.  Second, the hate seems to be pretty universal!  Every time I would Google something, half of the answers would be ���screw it, stick with 3.4” or similar.

 

That leads me to my question to you Mac C++ developers out there… Does Apple have a bit of a turd on their hands with XCode 4.x, or will it get better as I get used to it?  If not, what IDE are you all using for C++ development on Mac?

 

 

Anyways, long story short, from Pang part 5 on, Mac/GCC will compile unchanged out of the box.  That said, this tutorial is still going to focus on Visual C++ Express as the IDE of choice.

Programming CPP


Scroll to Top