8

So I'm working on a project and I wanted to use some C11 features for C. To use those features GCC 4.7 is required, so I went to synaptic and looked up 4.7, and I found the packages gcc-4.7-base so I installed it[1].

So now that gcc-4.7-base is installed I expected to be able to use 4.7, but no, when I do gcc --version it still shows 4.6.3 even more, when I try to directly call 4.7(via /usr/bin/gcc-4.7) it doesn't exist, though a gcc-4.6 executable does exist.

How do I "activate" GCC 4.7? I read here, you do some crazy stuff with update-alternatives, but it doesn't work for me as the gcc-4.7 executable doesn't actually exist on my machine.

Notes: 1. I also saw gcc-4.6-base, so I figured I'd uninstall it, but synaptic attempted to remove every package I had installed and install a Java runtime, so for obvious reason I decided not to remove it.

0

2 Answers 2

13

The following worked for me.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

Source for reference

1
  • I don't think this answers the question, since the OP specifically said the update-alternatives route wouldn't work for them as they didn't have the gcc-4.7 binary available. Indeed, trying to follow the instructions in this answer after installing gcc-4.7-base results in the error: update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
    – waldyrious
    Mar 4, 2016 at 15:43
0

The gcc binary is in the gcc-X.Y package, not gcc-X.Y-base. The latter is a dependency of either gcc-X.Y or libstdc++.

Basically, you should simply install gcc-4.7 and then either call it as gcc-4.7 from your makefile, or use install-alternatives to make it the default.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .