张宏华 發表於 2023-8-30 00:00:00

CentOS 离线安装gcc(版本4.8.2)详细介绍

<p>
        <strong>CentOS 离线安装gcc</strong></p>
<p>
          折腾了一天,功夫不负有心人,终于整出来了,还是很激动的呵呵。废话就不多说了,直接进入正题。<br>
        首先,在CentOS下安装gcc4.8.2需要先安装GMP,MPFR 和 MPC 三个包。</p>
<p>
        <strong>安装包下载地址</strong></p>
<p>
        从http://gcc.gnu.org/下载gcc安装包 gcc-4.8.2.tar.gz<br>
        从ftp://ftp.gnu.org/gnu/gmp/ 下载GMP安装包 gmp-5.1.3 .tar.bz2<br>
        从http://ftp.gnu.org/gnu/mpfr/ 下载MPFR安装包 mpfr-3.1.2.tar.gz<br>
        从http://www.cise.ufl.edu/mirrors/GNU/pub/gnu/mpc 下载MPC安装包 mpc-1.0.1.tar.gz  </p>
<p>
        安装步骤如下:</p>
<p>
        把GMP,MPFR 和 MPC 三个包分别解压到单独的文件中。</p>
<p>
        安装gmp</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_730753">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cd gmp-5.1.3</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># ./configure</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># make check</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这一步是必要的,用来查看有没有文件不匹配或缺失,在最后提示,到时注意看有没有Erro之类的提示,如果没有说明安装正常了. 本人安装过程中没有出现错误, 如果网友编译过程中出了问题记得告诉我.</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_728988">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make install</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        安装编译后的软件,完成了安装过程</p>
<p>
        有必要说明程序的头文件(.h)和库文件(lib*)的位置,本次安装会安装在 /usr/local/include 和 /usr/local/lib . 这个对后面安装mpfr很有作用.</p>
<p>
        安装mpfr</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_36644">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cd mpfr-3.1.2</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># make check</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        在每步操作中一定要看看有没有错误,本人编译时没有错误。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_967294">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make install</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        安装MPC</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_28626">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cd mpc-1.0.1</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># ./configure</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># make check</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make install</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        上边安装成功后,还要配置lib目录,因为gcc编译时需要</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_579896">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这次就可以安装gcc了</p>
<p>
        创建gcc安装目录/usr/gcc482</p>
<p>
        解压gcc4.8.2并进入解压后的目录,打开命令终端,执行</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_90573">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments">#</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">.</code><code class="bash plain">/configure</code> <code class="bash plain">--prefix=</code><code class="bash plain">/usr/gcc482</code> <code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-threads=posix --disable-checking --disable-multilib --</code><code class="bash functions">enable</code><code class="bash plain">-languages=c,c++</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># make install</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        现在gcc4.8.2安装完成了,但是gcc4.8.2的环境变量还没有设置,系统中使用的还是旧版的gcc。</p>
<p>
        刚刚我们把gcc4.8.2安装在/usr/gcc482下,如果不知道的话可以通过下边这步查找一下。</p>
<p>
        确定新安装的GCC的路径,可以先updatedb,然后locate gcc-4.8 |tail找一下。</p>
<p>
        查看gcc4.8.2信息如下</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_103785">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">ls</code> <code class="bash plain">/usr/gcc482/bin</code> <code class="bash plain">| </code><code class="bash functions">grep</code> <code class="bash plain">gcc</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        设置使用新版的gcc4.8.2的方法,我现在有两种。</p>
<p>
        <strong>方法一:</strong></p>
<p>
        添加gcc4.8.2到可选项:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_544543">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">update-alternatives --</code><code class="bash functions">install</code> <code class="bash plain">/usr/bin/gcc</code> <code class="bash plain">gcc </code><code class="bash plain">/usr/gcc482/bin/i686-pc-Linux-gnu-gcc</code> <code class="bash plain">40</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        倒数第三个参数是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了</p>
<p>
        这是我从网上找到的方法,可我试了,但gcc --v时显示的还是旧版本update-alternatives --display gcc 又显示正确,试想gcc482我们是安装了,可它的执行路径和lib并没有在系统中设置,而gcc --v肯定会从执行路径中寻找,因此它显示的结果是旧版的gcc又很正常了,对于这种做法目前我也很疑惑,哪位知道失败原因的,希望各位大虾多多指教啊!</p>
<p>
        <strong>方法二:</strong></p>
<p>
        这种方法很简单,设置软链接即可</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_787757">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># mkdir /usr/gcc447backup/ </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># mv /usr/bin/{gcc,g++} /usr/gcc447backup</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># ln -s /usr/gcc482/bin/gcc /usr/bin/gcc</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># ln -s /usr/gcc482/bin/g++ /usr/bin/g++</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># gcc -v</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        使用内建 specs。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_488968">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">COLLECT_GCC=gcc</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">COLLECT_LTO_WRAPPER=</code><code class="bash plain">/usr/gcc482/libexec/gcc/i686-pc-linux-gnu/4</code><code class="bash plain">.8.2</code><code class="bash plain">/lto-wrapper</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        目标:i686-pc-linux-gnu</p>
<p>
        配置为</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_471723">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">:.</code><code class="bash plain">/configure</code> <code class="bash plain">--prefix=</code><code class="bash plain">/usr/gcc482</code> <code class="bash plain">--</code><code class="bash functions">enable</code><code class="bash plain">-threads=posix --disable-checking</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">--disable-multilib --</code><code class="bash functions">enable</code><code class="bash plain">-languages=c,c++</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        线程模型:posix</p>
<p>
        gcc 版本 4.8.2 (GCC)</p>
<p>
        感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!</p>
<p>
        原文链接:http://blog.csdn.net/windows_nt/article/details/21240843</p>
頁: [1]
查看完整版本: CentOS 离线安装gcc(版本4.8.2)详细介绍