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

本文介绍在不同系统中如何切换和配置GCC版本,避免因版本不匹配导致的编译错误和警告。包括使用yum在CentOS上安装最新GCC,通过环境变量在无root权限下指定GCC版本,以及更改系统C++链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候我们的机器上会安装多个版本的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:
————————————————
版权声明:本文为CSDN博主「zhang0peter」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangpeterx/article/details/97256638

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值