关注公众号 风色年代(itfantasycc) 领 500G Java 微服务 开发资料

Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换_Linux教程_Linux公社-Linux系统门户网站

本文详细记录在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中gcc与g++默认安装的是7.4.0版本。

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

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

linuxidc@linuxidc:~/linuxidc.com$ sudo apt install gcc-8
[sudo] linuxidc 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
将会同时安装下列软件:
  cpp-8 libasan5 libgcc-8-dev libubsan1
建议安装:
  gcc-8-locales gcc-8-multilib gcc-8-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan5-dbg liblsan0-dbg libtsan0-dbg libubsan1-dbg
  libmpx2-dbg libquadmath0-dbg
下列【新】软件包将被安装:
  cpp-8 gcc-8 libasan5 libgcc-8-dev libubsan1
升级了 0 个软件包,新安装了 5 个软件包,要卸载 0 个软件包,有 185 个软件包未被升级。
需要下载 21.5 MB 的归档。
解压缩后会消耗 71.4 MB 的额外空间。
您希望继续执行吗? [Y/n] Y

linuxidc@linuxidc:~/linuxidc.com$ sudo apt install g++-8
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
将会同时安装下列软件:
  libstdc++-8-dev
建议安装:
  g++-8-multilib gcc-8-doc libstdc++6-8-dbg libstdc++-8-doc
下列【新】软件包将被安装:
  g++-8 libstdc++-8-dev
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 185 个软件包未被升级。
需要下载 11.6 MB 的归档。
解压缩后会消耗 45.2 MB 的额外空间。
您希望继续执行吗? [Y/n] Y

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

linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install gcc-5
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
将会同时安装下列软件:
  cpp-5 gcc-5-base libasan2 libgcc-5-dev libisl15 libmpx0
建议安装:
  gcc-5-locales gcc-5-multilib gcc-5-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg
下列【新】软件包将被安装:
  cpp-5 gcc-5 gcc-5-base libasan2 libgcc-5-dev libisl15 libmpx0
升级了 0 个软件包,新安装了 7 个软件包,要卸载 0 个软件包,有 185 个软件包未被升级。
需要下载 19.2 MB 的归档。
解压缩后会消耗 61.5 MB 的额外空间。
您希望继续执行吗? [Y/n] Y

linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install g++-5
正在读取软件包列表... 完成
正在分析软件包的依赖关系树      
正在读取状态信息... 完成      
将会同时安装下列软件:
  libstdc++-5-dev
建议安装:
  g++-5-multilib gcc-5-doc libstdc++6-5-dbg libstdc++-5-doc
下列【新】软件包将被安装:
  g++-5 libstdc++-5-dev
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 185 个软件包未被升级。
需要下载 9,864 kB 的归档。
解压缩后会消耗 38.6 MB 的额外空间。
您希望继续执行吗? [Y/n] y

现在查看已安装gcc版本

linuxidc@linuxidc:~/linuxidc.com$ ls /usr/bin/gcc*
/usr/bin/gcc    /usr/bin/gcc-ar    /usr/bin/gcc-nm    /usr/bin/gcc-ranlib
/usr/bin/gcc-5  /usr/bin/gcc-ar-5  /usr/bin/gcc-nm-5  /usr/bin/gcc-ranlib-5
/usr/bin/gcc-7  /usr/bin/gcc-ar-7  /usr/bin/gcc-nm-7  /usr/bin/gcc-ranlib-7
/usr/bin/gcc-8  /usr/bin/gcc-ar-8  /usr/bin/gcc-nm-8  /usr/bin/gcc-ranlib-8

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

设置优先级

linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 30
linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 40
linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 30
linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 40
linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

接着查看

选择gcc版本

linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --config gcc
有 3 个候选项可用于替换 gcc (提供 /usr/bin/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++版本

linuxidc@linuxidc:~/linuxidc.com$ sudo update-alternatives --config g++
有 3 个候选项可用于替换 g++ (提供 /usr/bin/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++)

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

linuxidc@linuxidc:~/linuxidc.com$ gcc --version
gcc (Ubuntu 8.3.0-6ubuntu1~18.04) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

linuxidc@linuxidc:~/linuxidc.com$ g++ --version
g++ (Ubuntu 8.3.0-6ubuntu1~18.04) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2. 编写C源代码

可以通过任何文本编辑器创建一个.cpp的文件.在这里用创建一个linuxidc.com.cpp文件,并保存在一个文件中,测试的代码为:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, Linux公社 www.linuxidc.com" << endl;
    return 0;
}

3. 代码编译

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

// 命令格式:g++ 文件名
g++ linuxidc.com.cpp

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

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

比如g++ linuxidc.com.cpp -o linuxidc.com

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

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

4. 执行并输出结果

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

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

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址:Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换_Linux教程_Linux公社-Linux系统门户网站

关注Linux公社(LinuxIDC.com)官方微信与QQ群,随机发放邀请码

 关注公众号 风色年代(itfantasycc) 领 500G Java 微服务 开发资料

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

  1. linux下swift编程教程视频教程,Ubuntu 14.04下搭建 Swift 3.0 开发环境教学视频+PPT

    分享Ubuntu 14.04下搭建 Swift 3.0 开发环境教学视频+PPT. Linux版本:Ubuntu: 14.04 LTS Swift: 3.0 到https://swift.org/do ...

  2. Ubuntu 16.04下搭建intel NCS 2开发环境OpenVINO

    材料准备 Ubuntu 16.04电脑(x86_64架构),需要联网 intel NCS 2设备 intel Distribution of OpenVINO toolkit for Linux(20 ...

  3. 本地搭建Wooyun漏洞库(二)——Ubuntu 18.04下搭建WooYun漏洞库

    本文参考https://github.com/grt1st/wooyun_search 这篇文章是建立在已经搭建好LAMP环境的基础上进行的,搭建方法可见:本地搭建Wooyun漏洞库(一)--Ubun ...

  4. ubuntu20.04下搭建android 8.1开发环境

    ubuntu20.04下搭建android 8.1开发环境 代码下载 解压代码 安装工具 编译代码 总结 最近主动失业,在家无聊,想搞块开发板玩玩android 9.0系统,但最后只在闲鱼上入了块fi ...

  5. Ubuntu 18.04下搭建单机Hadoop和Spark集群环境

    Hadoop在整个大数据技术体系中占有至关重要的地位,是大数据技术的基础和敲门砖,对Hadoop基础知识的掌握程度会在一定程度决定在大数据技术的道路上能走多远. 最近想要学习Spark,首先需要搭建S ...

  6. Ubuntu 18.04 下多显卡超频设置

    Ubuntu 18.04 下多显卡超频设置 环境:ubuntu 18.04 nvidia-A2000 * 6 步骤1: 正常安装ubuntu 18.04 打开(软件和更新)的(附加驱动)并勾选: (n ...

  7. 在Ubuntu 18.04上搭建SonarQube服务

    在Ubuntu 18.04上搭建SonarQube服务 在Ubuntu 18.04上搭建SonarQube服务 安装MySQL 创建sonar数据库 安装JRE/JDK 安装SonarQube 1号坑 ...

  8. ORBSLAM2 安装与运行(Ubuntu 18.04下测试)

    ORBSLAM2 安装与运行(Ubuntu 18.04下测试) 依赖项 Pangolin github地址:https://github.com/stevenlovegrove/Pangolin.gi ...

  9. Ubuntu 18.04下autoware 1.12 安装日志(含花屏解决方法)

    Ubuntu 18.04下autoware 1.12 安装日志 安装Autoware 1.12 Autoware官网信息 下载相关依赖项 新建文件夹下载autoware 1.12 编译autoware ...

最新文章

  1. 移动App开发趋势及未来的展望
  2. 马斯克要办大学上了热搜
  3. 数据集合 oracle,oracle集合
  4. Html5相关文章链接
  5. Firefox年内将默认启用AV1解码
  6. mysql获取当前时间,及其相关操作
  7. 5000字“肝”了这篇IP协议
  8. 深度linux安装virtualbox,【玩转deepin】如何安装VirtualBox增强功能使得deepin系统全屏显示?...
  9. java jvm 查看内存_JVM内存状况查看方法和分析工具(下)
  10. Windows定时开机 命令 自动开机
  11. 淘宝装修:1920全屏海报(源代码免费下载)
  12. MVC获取客户端IP地址方法
  13. 二、appium的原理
  14. 黑龙江省鹤岗市谷歌高清卫星地图下载
  15. OS X 修改网卡 Mac 地址的方法
  16. 初二数学作业能用计算机算吗,很多小学生在做数学作业的时候用计算器,这样对吗?...
  17. Navicat12.0.29_Premium_cs_x64激活
  18. 灰度图、黑白图,彩色图理解
  19. WCF 面向服务的4个原则
  20. linux复制与粘贴操作的快捷键

热门文章

  1. 移动机器人场景应用对比分析
  2. 洛谷——P1035 [NOIP2002 普及组] 级数求和
  3. 天梯—跟奥巴马一起画方块(C语言)
  4. 思科华为命令没有对比就没有伤害
  5. OpenCV3.1.0+VS2013测试程序
  6. 201512-1-数位之和
  7. 【操作系统/OS笔记14】经典同步问题:读者-写者问题、哲学家就餐问题
  8. 掘金翻译计划 GitHub Star 破3千--终于等到你
  9. android类之间的关系,Android 中Activity,Window和View之间的关系
  10. 小小的起步VMware vSphere之二