编译px4时报错:unrecognized command line option ‘-fdiagnostics-color=always’

本文分享了一位开发者在学习PX4源码过程中遇到的编译错误:'-fdiagnostics-color=always',并详细介绍了如何通过更换GCC版本解决此问题。文章提供了查看、安装、切换及卸载GCC版本的步骤,适合于遇到类似问题的开发者。

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

问题描述:

最近在学习px4源码,编译的时候报了这个错误:

unrecognized command line option ‘-fdiagnostics-color=always’

然后百度了一下,发现 ‘-fdiagnostics’ 的错误很多都跟gcc版本有关系,最后也是通过更换版本解决的。于是我也就换了一个版本,再编译就ok了。

如何安装与更换GCC版本:

1.如何查看gcc版本(只能看到当前使用的):

gcc --version

或者

gcc -v

2.如何定位gcc文件夹

which gcc

3.如何查看总共安装了哪几个版本的gcc?
那就要去文件夹下看了
也就是显示 gcc 根文件夹下带 ‘gcc’ 三个字母的所有文件夹

ls /usr/bin/gcc*

4.如何安装指定版本的 gcc/g++ ?

sudo apt install gcc-5 gcc-5--multilib g++-5 g++-5--multilib

可以把 ‘5’ 换成 ‘4.7’ 或者 ‘7’ 或者其他版本数字

5.如何给不同版本的gcc设置优先级(不过这个功能我还没用到):
其中 ‘20’ 数字越大代表优先级越高;’–slave’能保证gcc版本和gcc一致。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20 --slave /usr/bin/g++ g++ /usr/bin/g++-5

6.如何切换不同gcc版本:

sudo update-alternatives --config gcc

显示如下:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
  slection     Path              Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-5     20        auto mode
  1            /usr/bin/gcc-4.7   20        manual mode
* 2            /usr/bin/gcc-5     20        manual mode

Press <enter> to keep the current choice[*], or type selection number: 0

要切换的话直接输数字然后回车,方便的很。

7.如何卸载:

 sudo update-alternatives --config gcc

也会跳出不同版本供你卸载:

There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-5     20        auto mode
  1            /usr/bin/gcc-4.7   20        manual mode
  2            /usr/bin/gcc-5     20        manual mode

Press <enter> to keep the current choice[*], or type selection number:

DONE!

附:在下纯小白一个,很多地方浅尝辄止,不是很懂。这里写的只是一些个人经验,欢迎大神交流指正!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值