make 操作技巧指南--gcc版本设置

GCC版本切换与指定技巧
在多版本GCC环境中,选择合适的版本至关重要。当默认GCC版本不适合时,可以通过切换方法解决。在CentOS系统中,可以使用yum安装并切换GCC版本。若无root权限或非CentOS,可以在执行make时直接指定GCC版本,避免频繁修改makefile,提高效率。此外,还可以通过改变系统c++链接来实现版本切换。

很多时候我们的机器上会安装多个版本的gcc,但默认的gcc并不一定指向我们想要的gcc版本。

如果gcc版本太低,会报错:

cc1plus: 错误:无法识别的命令行选项“-std=c++11”
cc1plus: 错误:无法识别的命令行选项“-std=c++11”
cc1plus: 错误:无法识别的命令行选项“-std=c++11

如果版本太高,warning很可能会变成error,如:

third_party/boringssl/crypto/bio/file.c: In function ‘file_ctrl’:
third_party/boringssl/crypto/bio/file.c:186:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
       num = 0;
       ~~~~^~~
third_party/boringssl/crypto/bio/file.c:187:5: note: here
     case BIO_C_FILE_SEEK:
     ^~~~

选择合适的gcc版本非常重要。

如果在centos系统上,可以参考这篇文章进行gcc的版本切换:在centos上通过yum直接安装最新版gcc和开发工具

scl enable devtoolset-6 bash

切换后c++,g++等就指向了g++ - 6。


如果没有root权限,或者不是centos系统,那么可以进行如下操作:

make  CC=gcc-6 CPP=g++-6 CXX=g++-6 LD=g++-6

这样可以不用苦逼地去修改makefile文件,直接在make时指定gcc的版本。
可以节省大量的去手动修改makefile文件的时间。

参考:c++ - Set GCC version for make in shell - Stack Overflow


另外一个做法如下:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

还一个做法是更改系统的c++链接:

-> # update-alternatives --config c++
There are 2 choices for the alternative c++ (providing /usr/bin/c++).

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++       20        auto mode
  1            /usr/bin/clang++   10        manual mode
  2            /usr/bin/g++       20        manual mode

Press <enter> to keep the current choice[*], or type selection number:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值