linux下编译gcc6.2.0
linux下编译gcc6.2.0
在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8。官方源没有比较新的版本,于是自己编译使用。
GCC6的几个新特性
GCC 6 现在的默认值是 C++ 14. GCC 6 现在包括 C++ Concepts.
C++运行时库现在支持特殊的数学函数 (ISO/IEC 29124:2010)
支持 C++17 的实验功能
准备
可以去gnu官网下载gcc6.2.0的源码,但国内访问速度比较慢。可以进中科大的镜像站去下载。
下载并解压
wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2
tar -xjvf gcc-6.2.0.tar.bz2
解压之后进入源码目录,运行下面命令下载依赖包
./contrib/download_prerequisites #必须在源码根目录下运行此命令
编译gcc前需安装build-essential,bison,flex,texinfo。
生成Makefile
在源码目录下建立一个build目录(也可以在别的目录下),然后进入build目录运行configure脚本生成Makefile文件。
mkdir build && cd build
../configure --prefix=/usr/local/gcc6 --enable-checking=release --enable-languages=c,c++ --enable-threads=posix --disable-multilib
# --prefix=/usr/local/gcc6 指定安装路径
# --enable-languages=c,c++ 支持的编程语言
# --enable-threads=posix 使用POSIX/Unix98作为线程支持库
# --disable-multilib 取消多目标库编译(取消32位库编译)
下面是archlinux自带gcc的编译配置命令(gcc -v查看)。
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release
如果配置的时候出现cannot find crt1.o cannot find crti.o cannot find crtn.o的错误,那么需要指定--build的参数,比如x86_64。
编译安装
上一步生成Makefile没有问题后,就可以直接编译安装了。
make -j8 #使用8个线程并行编译
make install #安装(可能需要root权限)
错误与解决办法
makeinfo没有安装
/mnt/d/gcc/gcc-6.2.0/missing: 81: /mnt/d/gcc/gcc-6.2.0/missing: makeinfo: not found
WARNING: 'makeinfo' is missing on your system.
You should only need it if you modified a '.texi' file, or
any other file indirectly affecting the aspect of the manual.
You might want to install the Texinfo package:
<http://www.gnu.org/software/texinfo/>
The spurious makeinfo call might also be the consequence of
using a buggy 'make' (AIX, DU, IRIX), in which case you might
want to install GNU make:
<http://www.gnu.org/software/make/>
解决办法
sudo apt-get install texinfo
linux下编译gcc6.2.0的更多相关文章
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- Linux下编译安装mysql-5.0.45.tar.gz
安装环境:VMware9(桥接模式) + Linux bogon 2.6.32-642.3.1.el6.x86_64(查看linux版本信息:uname -a) 先给出MySQL For Linux ...
- Linux下编译安装Vim8.0
什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版 ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- 如何在Kali Linux下编译Windows Exploit
前言 微软的Windows在企业或是个人应用领域占据着最大的市场份额,在渗透测试过程中你会经常遇到很多Windows的工作站和服务器.另一方面,大多数渗透测试人员主要使用基于Linux的发行版渗透测试 ...
- linux下编译安装boost库
linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...
- Linux下编译安装Apache Http Server
Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...
随机推荐
- blog (后续更新)
设计Model(设计数据库) from django.db import models # Create your models here. class BlogsPost(models.Model) ...
- sql三维数据
今天有个钢铁项目在导入数据时 存货规格各种缺 相吐血 原表结构是这样的 编码.规格.名称 三种存货 三种都有想同的规格 规格对分厚度和宽度 那么问题来了 简简单单的几个厚度宽度 三种商品 就到了 10 ...
- 链表反转leetcode206
最近准备结束自己的科研生涯,准备要开始找工作了,准备在LEETCODE刷刷题...刷的前40题全部用python刷的,各种调包速度奇快,后被师哥告知这样没意义,于是准备开始回归C++,Python用的 ...
- PHP 做文件校验,MD5,CRC32,SHA等
函数 hash_file(): 使用给定文件的内容生成哈希值 说明 string hash_file ( string $algo , string $filename [, bool $raw_ou ...
- PL/SQL异常获取
1.no_data SET SERVEROUTPUT ON DECLARE pename EMP.ENAME % TYPE ; BEGIN SELECT ename INTO pename FROM ...
- css 文字超出部分显示省略号(原)
单行超出省略号 #word1{width: 100px; text-overflow: ellipsis; overflow: hidden;} 几行超出省略号(只兼容webkit内核) #wordN ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- iOS - 消息转发处理
详细运行时基础 NSInvocation介绍 NSHipster-Swizzling Objective-C Method相关方法分析 Type Encodings Objc是OOP,所以有多态. 当 ...
- 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(一)
Spring+MyBatis 首先要搭建的是Spring+MyBatis的整合框架,毕竟Spring是整个Web框架的核心部位,而数据库操作是一切测试的基础嘛. 目录结构 ━java ┣ contro ...
- W3Help-兼容性-知识库
http://www.w3help.org/zh-cn/kb/ clear:none/left/right/both/inherit该特性表明元素框的哪一边不可以和先前的浮动框相邻.'clear' 特 ...