gcc: error trying to exec 'cc1plus' : execvp: No such file or directory
I'm a newbie but adventuresome. I'm tri-booting Windows, Fedora, and Ubuntu 14.04 LTS (all 64). Learning but not using dpkg, apt, and apt-get. Starting to study C++ using Ubuntu (the only one with gcc installed). So on my first attempted compile I ran the command gcc xy.cc
and got the following:
gcc: error trying to exec 'cc1plus' : execvp: No such file or directory
So I searched my computer for cc1plus and execvp. And found neither.
Just execvp.3.gz in directory /user/share/man/man3
and cc1 in /user/lib/gcc/x86_64-linux-gnu/4.8
.
So a whole bunch of work and learning about the package getters and checkers, but no courage to remove and reinstall etc.
Do you have some suggestions?
You're possibly missing g++ package on your machine. Open a terminal and install it using the below command:
sudo apt-get install g++
To compile using g++ use this
g++ -o test.o test.cpp
g++ can be used to compile C++ source, the default ubuntu installation comes with gcc, but not with g++.
You are trying to compile C++ source using a C compiler. gcc usually successfully compiles C++ code but by default it doesn't link any c++ specific libraries (refer to this answer on Stack Overflow).
If a message displays like : Couldn't find package ...
, then try the following commands
sudo apt-get update && sudo apt-get upgrade
then
sudo apt-get install g++
cc1plus is the c++ backend (real compiler) for gcc, if you are primarily going to program in c++ you will really want to install g++ (will have cc1plus with it). Using one the package system front ends apt-get, synaptic, software manager, or a number of others it will install the dependencies with it.
execvp is a programming function, the file you found matching it is the man (manual) page for it. to view it open a terminal and type man execvp
. The man pages are often times online, and they have a TON of info in them on cli and programming stuff.