Y.Z
Y.Z

Reputation: 678

Upgrade GCC 4.6.3 on Ubuntu 12.04 to 4.8.2

I'm about to update default GCC (version 4.6.3) shipped by Ubuntu 12.04 to 4.8.2, though the compilation requires a standalone C++ compiler

admin@ubuntu: /usr/local/gcc_build$ sudo make

ends up with

configure: error: C++ compiler missing or inoperational
make[2]: *** [configure-stage1-libcpp] Error 1

Therefore I turn to the process of g++ installation with a preference to the latest version, which means that I would like to compile from source directly rather than apt-get. But seriously, I can't find the source anyway!(O_o). On the other hand, does the source of GCC also come along with that of g++ in the tar file I downloaded, or not? Thanks.

PS: problem remains unsolved with admin@ubuntu: /usr/local/gcc_build$ /home/admin/gcc-4.8.2/configure --enable-languages=c,c++

Upvotes: 6

Views: 26213

Answers (3)

ttj4
ttj4

Reputation: 391

  1. Add the ppa by

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test

  2. Install g++ and gcc (version 4.8)

    sudo apt-get update; sudo apt-get install gcc-4.8 g++-4.8

  3. Run the following commands one by one,

    sudo update-alternatives --remove-all gcc

    sudo update-alternatives --remove-all g++

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20

    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20

    sudo update-alternatives --config gcc

    sudo update-alternatives --config g++

That's it you are done!

Upvotes: 11

marcolz
marcolz

Reputation: 2970

Do you want to compile it yourself ? If not, there is a PPA, described here

Upvotes: 1

Claudio
Claudio

Reputation: 10947

You can easily compile the sources.

The following commands worked for gcc 4.7. They should be fine for gcc 4.8 as well:

sudo apt-get install libmpfr-dev libgmp3-dev libmpc-dev flex bison

svn checkout svn://gcc.gnu.org/svn/gcc/trunk

cd trunk

./configure --prefix=/opt/gcc-4.8.2/usr/local/gcc-4.8.2 --enable-languages=c,c++

make

make install

The compiler will be placed in the /opt/ directory, so you have to use it from there.

Upvotes: 3

Related Questions