1
votes

I am trying to compile some c++11 code on ubuntu 12.04. After invoking my makefile I got

cc1plus: error: unrecognized command line option ‘-std=c++11’

Ubuntu gcc 4.7. Fine, so I ran

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7

Ran it again, and still the same problem. Great.So then I tried changing the symlink of gcc from gcc4.6 to 4.7. After doing this, it then went and complained about not being able to find g++. So I then ran

sudo apt-get update    
sudo apt-get install build-essential

Still no luck. When I typed g++, I just got

The program 'g++' can be found in the following packages:
*g++
*pentium_builder
Try: sudo apt-get install <selected package>

So I then tried

sudo apt-get install pentium_builder

Now I get

Unable to exec g++.real: No such file or directory

How I can compile c++11 code?

2
you should create a virtual link to g++ using ln in usr/bin... this way when you type g++ it takes you to g++-4.7Claudiordgz
i did sudo apt-get install g++-4.7, then remove and created a sym link for g++ to g++-4.7. WorkedProf

2 Answers

1
votes

Last time I tried, the following worked for me for installing and setting g++ 4.8 as default:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
sudo apt-get install g++-4.8
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50

It seemed painless, and I was able to choose which gcc/g++ version to use without manually setting up symlinks. I suspect this would work for gcc 4.7 as well.

1
votes

Add the following to your Makefile:

PROJECT_CFLAGS = -std=c++0x