linux 编译安装GCC4.9.3(完整版)「建议收藏」

linux 编译安装GCC4.9.3(完整版)「建议收藏」第一步首先下载gcc源码包wgethttp://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2第二步将下载好的文件放在非root用户也有读权限的地方,例如/home/myuser或者/usr/gcc-build/下面第四步我会讲为什么要这么做.第三步解压文件,做一些准备工作tar

大家好,又见面了,我是你们的朋友全栈君。

第一步

  • 首先下载gcc源码包
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2

第二步

  • 解压文件,做一些准备工作
tar xjvf gcc-4.9.3.tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites
  • 安装gcc需要5个组件,download_prerequisites 的任务就是下载这些组件分别是:
cloog-0.18.1
gmp-4.3.2
isl-0.12.2
mpc-0.8.1
mpfr-2.4.2
  • 如果遇到download_prerequisites里面的地址无法访问
    推荐自行下载这些组件到目录gcc-4.9.3/,解压。
    然后将download_prerequisites里面的wget全部注释掉,再执行 :
./contrib/download_prerequisites
  • 做好上面的准备就可以configure了,建议另建一个目录来存放编译文件,默认安装目录是 /usr/local/ 可以使用 –prefix 修改自定义路径。
cd ..
mkdir gcc-4.9.3-build-temp
cd gcc-4.9.3-build-temp
../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install
  • 编译过程中报莫名其妙的错误,尝试使用root用户或者root权限编译

  • 编译过程很慢,一切顺利的话,取决于你的配置40分钟-1个小时后再来看结果吧,我用公司的16核服务器编译了20分钟

第三步

  • 在.bashrc中配置库文件和头文件路径
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/include/:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/include/:$CPLUS_INCLUDE_PATH
  • 执行 gcc -v 可以看到下面的信息, 恭喜你成功一半了!
gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
目标:x86_64-unknown-linux-gnu
配置为:../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
线程模型:posix
gcc 版本 4.9.3 (GCC) 


  • 如果在调试过程中某些库无法定位到源文件,例如 std::string 组件就定位到了我的编译目录.
像这样:
/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h: No such file or directory

/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/allocator.h: No such file or directory
  • 具体原因没细查~ 可能是因为 libstdc+±v3是一个过时的库,没有默认安装到/usr/local/include/
  • 其实不是没有这个文件,而是非root用户是没有权限访问

第四步

  • 难道上面不是已经完成安装了吗? 如果你只是编译不调试的话,确实安装完毕,不用往下看了。这个问题曾整整折腾了我一天时间。

  • 我也看了其他人的教程,都没有提到这一点,特此写这篇文章也算是加深记忆和便于以后查看,请继续看下一步


第五步

  • 升级完gcc还需要升级gdb!!! 因为版本不匹配导致调试的时候 print变量提示找不到符号,以及其他莫名其妙的问题…

  • 这里我选择安装的时候gdb-7.9 ,安装gdb需要4个组件 ,python,python-devel ,texinfo,ncurses-devel

  • 编译gdb时报错误 configure: error: no termcap library found 是缺少 ncurses-devel

  • 编译过程中遇到莫名奇妙的报错,例如:ser-unix.c:118:1: error: conflicting types for ‘get_tty_state’,清理干净configure目录,使用root用户安装就好了

yum install texinfo
yum install ncurses-devel
yum install python
yum install python-devel
wget http://mirrors.ustc.edu.cn/gnu/gdb/gdb-7.9.tar.gz
tar xzvf gdb-7.9.tar.gz
cd gdb-7.9
./configure --with-python
make
make install
  • 如果在安装过程中提示找不到makeinfo命令或其他错误,切换root用户再试一次

  • 没有python的支持也可以编译,去掉–with-python选项就行了,但是gdb是无法加载python脚本的,例如c++ 的 pretty-printer 脚本是无法使用的

备注

最近升级gcc-9.3 和 gdb-9.2 感觉新版本升级更加方便了,但是编译仍然报各种错误,切换使用root权限make可以顺利通过编译!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141497.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • COleVariant 的使用

    COleVariant 的使用使用COleVariant传递基本数据类型COleVariant vTrue(TRUE,VT_BOOL);COleVariant vFalse(FALSE,VT_BOOL);COleVariant vFileName((LPCTSTR)pszFileP

    2022年7月18日
    17
  • css实现返回顶部,实现返回顶部效果

    css实现返回顶部,实现返回顶部效果实现的效果如下可以点击它返回到首页去html部分title=”返回顶部”>css部分.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999;right:50px;bottom:50px;height:50px;list-style:none;}.layui-fixbar.layui-fixba…

    2022年7月13日
    167
  • 8大轻型网管工具,网络管理好帮手「建议收藏」

    8大轻型网管工具,网络管理好帮手「建议收藏」  从设备发现到系统、网络和流量可视性,这些轻型的网管工具非常实用。在网络和服务器世界,重点是可视性、可视性、可视性,如果你不知道你的网络和服务器在每天每秒正在做什么,你很可能会出问题。幸运的是,这里有很多好工具(商业和开源工具)来帮助你满足需求。  在本文中我们提供了一些很好用的网管工具,这些工具适合各种规模的网络。从网络和服务器监控到趋势、图形,甚至是交换和路由器配置备份,这些工具都可以帮…

    2022年10月6日
    2
  • python手机编程软件-盘点几个在手机上可以用来学习编程的软件[通俗易懂]

    python手机编程软件-盘点几个在手机上可以用来学习编程的软件[通俗易懂]前天在悟空问答的时候,很荣幸被邀请参加回答“在手机上可以用来学习编程的软件有哪些?”这个问题,当时在回答的首页看到一个头条大微(小小猿爱嘻嘻)的回答,觉得十分受用,在此将其整理好,发布头条给大家学习,希望对大家学习编程有帮助。感谢大佬提供的解答,原文可以点击拓展链接进行查看。学习编程的软件其实挺多的,下面我简单几个可以在手机上编程的软件,主要分为C/C++,Java,Python,前端网页,Lin…

    2025年10月18日
    3
  • maven项目打包成war包并在linux下部署到tomact上

    maven项目打包成war包并在linux下部署到tomact上

    2021年7月15日
    119
  • vue中watch的用法

    vue中watch的用法当 vue 项目中需要对某个值进行监听做一些操作的时候我们会用到 watch 进行监听 1 监听普通属性 单一字符串 布尔值 等等 data return dvid goodsInfo userInfo closeTime 0 关仓倒计时 watch closeTime newVal oldVal console log newVal oldVal

    2025年6月21日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号