Just another WordPress.com site

Installing latest gcc on Snow Leopard

I decided to install gcc 4.5.1 via Macports and the process didn’t exactly go smoothly. IIRC, the initial error was something about base_file.cc not being find. I’m not sure what caused the problem, however the fix was to temporarily rename the directory /opt/local to /opt/local-temp. The only packages installed in /opt/local/ are python 2.6, git, and Qt4.7.

So the basic steps if you have problems with the install using Macports is

cd /opt
mv local local-temp
sudo port clean gcc45
sudo port selfupdate
sudo port upgrade outdated
sudo port install gcc45

Towards the end of the build process there was another error about libpng being wrong or something. Simply reinstalling libpng via macports resolved the issue and allowed gcc finish building.

sudo port clean libpng
sudo port install libpng
sudo port install gcc45

Afterwards, rename /opt/local-temp to /opt-local.

If you type gcc –version at the command line the version install with XCode will probably run. This is because the Macports version is named gcc-mp-45. Using Macports install gcc_select.

sudo port install gcc_select

gcc_select –l will list the available versions of gcc, and gcc_select mp-gcc45 will make version 4.5 the default. This changes the symbolic link for /opt/local/bin/gcc. I also had to add the new symbolic link to /usr/local/bin/gcc (make a copy of the original) in order to get everything to work correctly.


October 11, 2010 - Posted by | C++ Programming, gcc, Macports | , , , , ,

1 Comment »

  1. Cna you write down how to make that link, because I made it between /usr/bin/gcc and /opt/local/bin/gcc and it does not work.

    Thanks in advance.

    Comment by Felipe | November 27, 2010 | Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: