Write C/C++ on Mac with Eclipse, no Xcode

Apple’s Xcode development system is superb for developing applications, but sometimes you just want to write C or C++ code for research or school. Composing a serious chunk of code with vi is no longer acceptable,* so users in this frame of mind are now using Eclipse, a modern IDE, that’s also free. Here’s how to get gcc without installing Apple’s Xcode and then install Eclipse for C/C++ programming.

What’s the Motivation?

At work recently, my wife was chatting with a colleague who was taking his first C++ class. She taught him how to use Eclipse on a Mac, even though he resisted at first. However, later, he came back and commented that the other students were trying to manage ever increasingly complex projects with the vi editor. It was taking them four, six, or even 20 hours in some cases to complete their homework each week. He finished his, typically, in 30 minutes. That’s the power of an IDE with a modern debugger. That last item, the debugger, can’t be emphasized enough. Print statements in your code are oh, so yesteryear with a tool like this. Time is money, and efficiency reflects on you as a programmer.

So if you’re a scientist, researcher or engineer who wants to write some research code, not intended as a GUI app, in Java, C, C++ or Fortran, you need to dump vi as an editor* (or Emacs or Nedit or whatever) immediately and get with this kind of IDE. Things are moving far too fast nowadays not to make this important move. (Clearly, I’m speaking to an older crowd here.**)

To be perfectly clear, Apple’s Xcode is a fabulous development system for C, C++, Objective-C and even Fortran 77***. You can build native OS X and iOS apps. But many researchers and scientists aren’t interested in Xcode. They’ve come from a Linux or other UNIX platform, like IBM’s AIX, and they just want to carry on their research in Eclipse on a Mac. This how-to is primarily for them. But, as I mentioned above, students who are taking their first programming class and own a Mac will also find this discussion useful — indeed mandatory. Remember, this is an introduction to whet your appetite and get you launched, not a complete Eclipse tutorial.

Also, this how-to for the sake of simplicity focuses on C/C++, but Eclipse can handle a myriad of languages, including, but not limited to, Java and Fortran. Let’s start with C/C++.

Getting the gcc Compiler

As an aside, when you install Apple’s Xcode (free from the Mac App Store only in Lion), gcc is automatically installed in /usr/bin. But if you have a mind to work with just Eclipse and gcc, you’ll need a way to install gcc without, if it pleases you, installing Apple’s Xcode first. (For reference, here’s a how-to on installing Xcode and gcc.)

There are at least two places I know of where you can get a gcc installer package for OS X:

If you find other sources, let us know.

Installing Eclipse

Here’s a handy reference on where to get Eclipse for the Mac. Version 3.7 (“Indigo”) installs nicely in Lion and seems to work okay, but our household hasn’t put it to a grueling acid test with OS X 10.7.1.

Eclipse -1

Eclipse Download for CC++, 64-bit

The download is a …tar.gz file, so move it where you want the Eclipse directory to be because when you double click it, the package will be unzipped and untared right there. After Eclipse is installed, you’ll see it as an app, just like any other, with this icon.

Eclipse-2

It’s easy to create an alias to eclipse.app, if you wish, and place it in your /Application directory. Because the Eclipse IDE itself is written in Java, if you’re running a clean copy of Lion, you’ll need to download the Java runtime before the Eclipse app will launch. Just double-click on Eclipse, and it’ll trigger the required Java runtime download. Nothing else to do.  If you’re in Snow Leopard, the Java runtime is already there.

Eclipse-3

Java runtime download

This first thing you’ll see when you run Eclipse is that it asks for the location of your workspace. I typically create a directory in /Users/john called Programming where I do any code development. (Which is not much these days.)

Eclipse-4

Workspace Selection

 

After you select your workspace, you’ll be confronted with an Eclipse peculiarity.  A welcome page will be launched that brings a real feeling of WTF to many users. Here it is.

Eclipse-8

Welcome screen

The trick is to realize that the icon on the far right, circled in red above, takes you into the workbench.  For that named workspace, this one time is the only time you’ll see that screen.

Once the IDE is launched, there are just a few details before you can build a project. Again, for simplicity, lets stay with C/C++. From the Eclipse File menu, select “New” and then C++ Project.

Eclipse-5a

Eclipse - New Project

Experienced Eclipse users know the drill. Name the project, make sure you’ve identified the location of your compiler in the Toolchain, and so on. (It may be different than the default install by Apple’s Xcode. The screen shot below shows Apple’s install of gcc, marked as MacOSX GCC, because I’d previously installed Xcode on that Mac.)

Eclipse-6

Configuration

Newbies may want to select the Hello World project just to see how things get set up. Make sure you work your way through the setup with Next > at the bottom and don’t click the Finish button too soon. A more detailed examination of this set up and the ins-and-outs of Eclipse are beyond the scope of this getting started article. The goal here is simply an introduction for Mac users. And you’re not alone. There’s a huge body of knowledge on the Internet about Eclipse. Here’s a start.

If all went well, you’ll be in the Eclipse IDE with the Hello World program in the editor and a Make file already created. This environment is called the Eclipse workbench.

Eclipse-7

Eclipse Workbench w/ default “Hello World” code

It may take you some start-up time to learn Eclipse, but trust me, coding the old way will soon bog you down. The Xcode and Eclipse developers learn from each other, so if you ever decide to get into OS X or iOS development, having earned your wings in Eclipse will pay huge dividends later.

__________________

* I’m qualified to say this because I’ve lived and breathed vi for a living in the past.

** Remember, a lot of people are going back to school, learning or refreshing their programming skills. 

*** You can write and compile Fortran 77 in Xcode with standard output, but you can’t access the Cocoa APIs and build native apps in F77.