I'm trying to install gcc 4.8.1 at the moment. Currently 4.8.2 and 4.9.1 are installed. I downloaded an 4.8.1 from here http://gcc.cybermirror.org/releases/gcc-4.8.1/ . After extracting the files I did a ./configure
and then tried make
. At the end of make
, I get this error
/usr/include/linux/errno.h:1:23: fatal error: asm/errno.h: No such file or directory
#include <asm/errno.h>
I am new to linux so I do not know how to find or add this header file.
Edit: Steps I made:
- Extract gcc-4.8.1.tar.gz to a folder
- Open terminal window
cd gcc-4.8.1
./configure --build=x86_64-linux-gnu
make -j4
I don't know what I did differently but it finally compiled. After that I did make install. My question now how do I use this instead of 4.8.2 which using the command gcc-4.8
still defaults to.
Best Answer
The
asm/errno.h
header is provided by a variety of packages. Odd thatgcc
would require it, but you can try:You also need to tell GCC to look for an architecture and OS specific location for the headers:
(or
i386-linux-gnu
for 32-bit Ubuntu).It's highly recommended when building stuff from source that you use
--prefix
flag (and with GCC, the--program-suffix
flag) while configuring. Since you haven't, try running/usr/bin/gcc
.Thus:
Now your GCC binaries will be installed to
/usr/local/bin/
, and other things in other folders in/usr/local
.For example:
Note how I'm running
configure
andmake
from a different directory, outside of where the GCC source is? That's how the GCC docs recommend that GCC be built.