您有新信息 建设招标网官方网站,百度广告价格,三类人不适合学编程plc,信用湘潭网站Ubuntu下多gcc版本的管理
开发过程中#xff0c;在编译一个开源项目时#xff0c;由于代码使用的c版本过高#xff0c;而系统内置的gcc版本过低时#xff0c;这个时候我们就需要升级gcc版本#xff0c;但是为了避免兼容性问题#xff0c;安装多个版本的gcc#xff0c;然…Ubuntu下多gcc版本的管理
开发过程中在编译一个开源项目时由于代码使用的c版本过高而系统内置的gcc版本过低时这个时候我们就需要升级gcc版本但是为了避免兼容性问题安装多个版本的gcc然后可以按需切换是个不错的解决方案。
查看gcc版本
$ gcc -v$ g -v笔者的gcc版本还是5这个是Ubuntu16自带的那么如果下载的源码使用了c17的API那么可能就会遇到编译问题比如笔者遇到的问题
filesystem: No such file or directory#include filesystem^
compilation terminated.
ninja: build stopped: subcommand failed.Source file was:#include filesystemint main(void){return std::filesystem::is_regular_file(/) ? 0 : 1;}Performing C SOURCE FILE Test std_filesystem_with_libfs failedfilesystem是c17新增的使用g5当然无法编译通过。那么是时候升级gcc/g版本了。
查看可用的gcc版本这个是官方release的地址 http://ftp.gnu.org/gnu/gcc/
安装新版本gcc
1.添加软件源
sudo add-apt-repository ppa:ubuntu-toolchain-r/test2.更新源
sudo apt-get update3.安装gcc-9
sudo apt-get install gcc-9这样安装的是9.xx版本最新的稳定版本也可以安装指定版本比如
sudo apt-get install gcc-9.5.04.查看已安装gcc版本 locate是Ubuntu自建文件数据库比直接搜索文件快的多但是locate每天更新一次实时性没那么好
sudo updatedb sudo ldconfig
locate gcc | grep -E /usr/bin/gcc-[0-9][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PixAhmSw-1677228525467)(null)] 5.切换gcc版本 使用update-alternatives命令切换
# 命令最后的 20和50是优先级如果使用auto选择模式系统将默认使用优先级高的
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50更改不同版本gcc优先级时会自动将高优先级版本作为当前使用的版本。
同理对g多版本管理也是同样的操作。 欢迎关注我的公众号“虎哥Lovedroid”原创技术文章第一时间推送。