我是靠谱客的博主 自觉早晨,最近开发中收集的这篇文章主要介绍解决gcc无法识别命令行选项的错误 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

今天在升级我自己打磨的Gentoo时,当emerge到sys-block/thin-provisioning-tools时,ebulid进程被中断了,然后在log中看到如下错误信息"cc1plus error unrecognized command line option ‘-std=c++11’",在google无果的情况下前去gentoo的irc频道求助,这才得知,当emerge新的gcc之后,系统并不会自动启用更新版的gcc,而会仍旧使用旧的,这样一来就可能会出现某些命令行选项无法被正确识别的问题.之后根据irc中其他网友给出的建议,参考 Gentoo Gcc Upgrade Guide 启用了新的gcc,这里简要记录一下使用到的命令,以便将来需要时查看.

Wangqige wankey # gcc-config -l
[1] x86_64-pc-linux-gnu-4.6.3 *
[2] x86_64-pc-linux-gnu-4.7.3 Wangqige wankey # gcc-config 2 * Switching native-compiler to x86_64-pc-linux-gnu-4.7.3 ... >>> Regenerating /etc/ld.so.cache... [ ok ] * If you intend to use the gcc from the new profile in an already * running shell, please remember to do: * . /etc/profile Wangqige wankey # env-update >>> Regenerating /etc/ld.so.cache... Wangqige wankey # source /etc/profile Wangqige wankey # emerge --oneshot libtool

gcc-config -l是列出系统中已安装的所有gcc版本. 之后使用gcc-config 2选择使用第二个gcc版本,如果有更多个版本,则将2改为最新的那个版本相应的序号.随后的env-update和source /etc/profile用来让系统能够识别它. 当完成这些步骤之后,我们需要重建libtool,即上面最后一句命令.

最后,为了保证系统的健全状态,我们应该使用新的gcc重建一次系统(?真的吗?在最新的英文版中我没见到相关描述,只在中文版中看到,看来又是过时的吧)

emerge -eav system
emerge -eav world

如果希望将旧版本的gcc删除,我们可以使用类似如下命令

emerge -aC =sys-devel/gcc-3.4*

转载于:https://www.cnblogs.com/enjie/articles/8120233.html

最后

以上就是自觉早晨为你收集整理的解决gcc无法识别命令行选项的错误 的全部内容,希望文章能够帮你解决解决gcc无法识别命令行选项的错误 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部