Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

How do I install the latest gcc on FreeBSD ind set up the system so that this latest version would be used to compile further programs?

At the moment of this writing the latest release of gcc is version 4.9.0. I use FreeBSD 10.0.

I actually need g++, the C++ compiler, but I need to install something like gcc49 package for it, right?

share|improve this question
    
Dp you want to compile all ports with GCC or do you need just GCC? –  Raphael Ahrens May 16 at 14:49
    
I would like gcc to compile my software. And maybe the ports I would install after that, if that can be done. –  Nickolai Leschov May 16 at 14:51

1 Answer 1

You can install GCC 4.9 by building it from ports with

cd /usr/port/lang/gcc49; make install clean

or if you have portmaster

portmaster -DHB lang/gcc49

or if you prefer packages with

pkg install lang/gcc49

If you change lang/gcc49 to lang/gcc you will install the most recent stable version of GCC currently this is GCC 4.7.

When you want to build all your ports with GCC instead of Clang you have to edit /etc/make.conf and add

.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc49)
CC=gcc49
CXX=g++49
CPP=cpp49
.endif

and edit /etc/libmap.conf and add there

libgcc_s.so.1   gcc49/libgcc_s.so.1
libgomp.so.1    gcc49/libgomp.so.1
libobjc.so.3    gcc49/libobjc.so.4
libssp.so.0     gcc49/libssp.so.0
libstdc++.so.6  gcc49/libstdc++.so.6

Here is an article from FreeBSD.org which explains this in more detail.

But you don't really need GCC for the ports, all ports that already depend on GCC will use GCC.

Edit:

And yeah g++ will be installed with all GCC ports.

share|improve this answer
1  
Note that now lang/gcc5 also exists. –  PythonNut Oct 2 at 4:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.