Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

本文详细记录在Ubuntu 18.04.2 下搭建 C/C++编译开发环境的步骤,Ubuntu 18.04.2预装GCC版本为7.4,但有时在编译是需要用的不同gcc版本,下面就介绍如何安装不同的gcc 和g++版本,并设置根据不同的需要在不同版本之间切换。

1. 环境准备

首先需要安装gcc和g++环境

安装之前查看是否有安装,使用命令:

gcc --version
g++ --version

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

Ubuntu 18.04中gcc与g++默认安装的是7.4.0版本。

你也可以使用以下命令安装其他版本的gcc与g++:

# 版本安装:这里选择的式版本8

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

# 版本安装:这里选择的式版本5

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

现在查看已安装gcc版本

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
 其中40 ,50 ,70是优先级数值可以自己设定,--slave能保证gcc和g++保持相同的版本。

设置优先级

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

接着查看

选择gcc版本

  选择      路径          优先级  状态
------------------------------------------------------------
  0            /usr/bin/gcc-5  50        自动模式
  1            /usr/bin/gcc-5  50        手动模式
  2            /usr/bin/gcc-7  40        手动模式
* 3            /usr/bin/gcc-8  30        手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:

现在默认为gcc8

选择g++版本

  选择      路径          优先级  状态
------------------------------------------------------------
* 0            /usr/bin/g++-5  50        自动模式
  1            /usr/bin/g++-5  50        手动模式
  2            /usr/bin/g++-7  40        手动模式
  3            /usr/bin/g++-8  30        手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:3
update-alternatives: 使用 /usr/bin/g++-8 来在手动模式中提供 /usr/bin/g++ (g++)

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

安装后查看版本,如下图所示:

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

2. 编写C源代码

3. 代码编译

打开终端使用如下命令进行编译:

注意:这里的文件名其实是包含文件路径的。要是不知道文件路径的话可以在敲完g++加上空格之后直接把文件拖进去,系统会自动添加文件路径。默认的输出位置是“主文件夹”,默认输出文件是a.out。可以使用以下格式指定输出的文件名:

g++ 文件名 -o 输出文件名

输出的路径仍然是默认路径,文件名应是*.out的格式。这里要注意的是使用-o命令必须指定输出文件名,否则会报错:g++: argument to ‘-o’ missing。

对于g++的命令使用,可以通过:man g++命令查看

4. 执行并输出结果

通过以上编译得到*.out文件以后,你也可以直接把这个文件拖到Terminal上,通过按回车键运行,如图所示:

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换

到这里就完成了Ubuntu 18.04下 C/C++环境的搭建,对于从编译到运行的过程可以通过脚本来一步到位执行。

相关推荐