首页 > 代码库 > 在centOS7.2上编译gcc4.1.2

在centOS7.2上编译gcc4.1.2

1.下载安装gcc4.1.2安装包

 wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2

注:其他版本的安装包可以在上级目录寻找到。

2.执行以下命令,查看是否安装makeinfo

makeinfo --version

已安装,则记录版本号,然后执行“步骤 3”。

未安装,则执行 yum install texinfo 命令,安装“makeinfo”。

3.执行以下命令,解压缩gcc-4.1.2.tar.bz2

 

tar -xvf gcc-4.1.2.tar.bz2

4.执行以下命令,进入gcc-4.1.2”目录

 

cd gcc-4.1.2

5.使用 vi 编辑器,修改“configure”文件。如果您的“makeinfo”的版本

4.2-4.9”之间,则跳过此步骤。对于高于4.x的设置也无需设置。

 

# For an installed makeinfo, we require it to be from texinfo 4.2 or

 

# higher, else we use the “missing” dummy.

 

if ${MAKEINFO} –version \ | egrep ‘texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])‘ >/dev/null 2>&1;

 

“makeinfo”的版本为“4.13”,则将粗体部分修改为以下内容:

 

‘texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-9][0-9]*|[5-9])‘

 

“makeinfo”为其他版本,则将粗体部分修改为以下内容:

 

‘texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|4\.[1-9][0-9]*|[5-9])‘

 

小窍门:您可以在 vi 里使用 /texinfo[^0-9] 快速定位上面两行。

 

6.执行以下命令编译 gcc 4.1.2

./configure --prefix=/usr/local/gcc-4.1.2&& make  

注:为了避免编译时间过长可以添加这这项,只编译c,C++

./configure  --prefix=/usr/local/gcc-4.4.7 --enable-languages=c,c++ && make -j4

编译很可能会出现这个错误:

将蓝色部分替换成红色的内容,即可成功编译!
It has a compiling error when you build gcc4.1.2:
../gcc/config/i386/linux-unwind.h:138:17: error: field ‘info‘ has incomplete type "
And here is the solution: http://forge.ispras.ru/issues/4295
It means that you need to change the code on line 136 in linux-unwind.h:
struct rt_sigframe {
    int sig;
    struct siginfo *pinfo;
    void *puc;
    struct siginfo info;
} *rt_ = context->cfa;
to
struct rt_sigframe {
    int sig;
    siginfo_t *pinfo;
    void *puc;
    siginfo_t info;
    struct ucontext uc;
} *rt_ = context->cfa;
You can download the modified file in http://files.cnblogs.com/yaoyansi/gcc412_build.zip.

7.执行以下命令安装 gcc 4.1.2

sudo make install

安装gcc 4.1.2时,编译报错:

/usr/include/gnu/stubs.h:7:27: 错误:gnu/stubs-32.h:没有那个文件或目录

可能原因是glibc-devel没有安装。

执行yum install glibc-devel.i686

 

8.执行以下命令,进入/usr/bin”目录

 

cd /usr/bin

9.依次执行以下命令,重命名原有的 gcc 链接文件以作为备份

 

mv gcc gcc.bak

 

mv g++ g++.bak

10.依次执行以下命令,建立 gcc 4.1.2 的链接

ln -s /usr/local/gcc-4.1.2/bin/gcc /usr/bin/gcc  Ln

ln -s /usr/local/gcc-4.1.2/bin/g++ /usr/bin/g++

11.执行以下命令,查看 gcc 版本。

gcc  --version

你会查看到gcc版本已经变为4.1.2

 

 

 

在centOS7.2上编译gcc4.1.2