c++11&14-编译

2021-04-16 14:55:17 浏览数 (1)

1. c 11&14怎么编译

学习c 11的时候,我的redhat虚拟机上的g 才是4.1.2版本,而g 4.7版本才开始支持c 11的,所以要使用c 11,首先需要将我们的g 编译器升级到4.7或者以上版本,这里我选择的是GCC的 7.1.0版本。

注意:大意义上来讲,GCC是一个编译器集合,拿到源代码后编译出来各种编译器,如果我们选择编译c,c 的编译器,就会生成gcc和g 。这里的gcc是专门正对于c代码的编译器,g 则是专门针对于c 代码的编译器,gcc和g 最显著的区别是g 会调用-lstdc 库,gcc不会。

1.1 g 升级
1.1.1 下载gcc
代码语言:javascript复制
  1. wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-7.1.0.tar.bz2
  2. tar -jxvf gcc-7.1.0.tar.bz2
1.1.2 下载编译gcc时需使用的依赖项
代码语言:javascript复制
  1. cd gcc-7.1.0
  2. ./contrib/download_prerequisites //这个脚本会自动下载依赖项,但耗时很长,先去吃饭了
1.1.3 生成makefile文件及编译安装

建立一个单独的目录用于存放编译生成文件

代码语言:javascript复制
  1. mkdir gcc-build-7.1.0
  2. cd gcc-build-7.1.0
  3. ../configure -enable-checking=release -enable-languages=c,c -disable-multilib
  4. make -j4
  5. make install

此时使用g --version,就可以看到版本已经是7.1.0了。

1.2 c 11编译

一般的,我们要编译c 11,都要使用g -std=c 11,但据我测试,7.1.0的版本已经默认支持c 11和c 14了,所以就不用再写明-std=c 11的选项了,可以直接使用g 编译c 11或者c 14的代码啦,当然如果想知道某个特性到底是属于c 11还是c 14,就可以使用-std=c 11和-std=c 14来辨别。

更多c 系列文章,请关注我的公众号:晟夏的叶。

0 人点赞