? Ubuntu 18.04 下搭建 C/C++编译开发环境及GCC多版本切换_Linux教程_Linux公社-Linux系统门户网站 365体育官方中文版赌博_体育彩票管理365_365 体育 注册
手机版
你好,游客 登录 注册
背景:
阅读新闻

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

[日期:2019-04-23] 来源:Linux公社? 作者:醉落红尘 [字体: ]

本文详细记录在Ubuntu 18.04.2 下搭建 C/C++编译开发环境的步骤,Ubuntu 18.04.2预装GCC版本为7.4,但有时在编译是需要用的不同gcc版本,下面就介绍如何365体育官方中文版赌博_体育彩票管理365_365 体育 注册不同的gcc 和g++版本,并设置根据不同的需要在不同版本之间切换。

1. 环境准备

首先需要365体育官方中文版赌博_体育彩票管理365_365 体育 注册gcc和g++环境

365体育官方中文版赌博_体育彩票管理365_365 体育 注册之前查看是否有365体育官方中文版赌博_体育彩票管理365_365 体育 注册,使用命令:

gcc --version
g++ --version

Ubuntu 18.04 下搭建 C/C++编译开发环境

Ubuntu 18.04中gcc与g++默认365体育官方中文版赌博_体育彩票管理365_365 体育 注册的是7.4.0版本。

你也可以使用以下命令365体育官方中文版赌博_体育彩票管理365_365 体育 注册其他版本的gcc与g++:

# 版本365体育官方中文版赌博_体育彩票管理365_365 体育 注册:这里选择的式版本8

linuxidc@linuxidc:~/linuxidc.com$ sudo apt install gcc-8
[sudo] linuxidc 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树? ? ?
正在读取状态信息... 完成? ? ?
将会同时365体育官方中文版赌博_体育彩票管理365_365 体育 注册下列软件:
? cpp-8 libasan5 libgcc-8-dev libubsan1
建议365体育官方中文版赌博_体育彩票管理365_365 体育 注册:
? 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
下列【新】软件包将被365体育官方中文版赌博_体育彩票管理365_365 体育 注册:
? cpp-8 gcc-8 libasan5 libgcc-8-dev libubsan1
升级了 0 个软件包,新365体育官方中文版赌博_体育彩票管理365_365 体育 注册了 5 个软件包,要卸载 0 个软件包,有 185 个软件包未被升级。
需要下载 21.5 MB 的归档。
解压缩后会消耗 71.4 MB 的额外空间。
您希望继续执行吗? [Y/n] Y

Ubuntu 18.04 下搭建 C/C++编译开发环境

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

Ubuntu 18.04 下搭建 C/C++编译开发环境

# 版本365体育官方中文版赌博_体育彩票管理365_365 体育 注册:这里选择的式版本5

linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install gcc-5
正在读取软件包列表... 完成
正在分析软件包的依赖关系树? ? ?
正在读取状态信息... 完成? ? ?
将会同时365体育官方中文版赌博_体育彩票管理365_365 体育 注册下列软件:
? cpp-5 gcc-5-base libasan2 libgcc-5-dev libisl15 libmpx0
建议365体育官方中文版赌博_体育彩票管理365_365 体育 注册:
? 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
下列【新】软件包将被365体育官方中文版赌博_体育彩票管理365_365 体育 注册:
? cpp-5 gcc-5 gcc-5-base libasan2 libgcc-5-dev libisl15 libmpx0
升级了 0 个软件包,新365体育官方中文版赌博_体育彩票管理365_365 体育 注册了 7 个软件包,要卸载 0 个软件包,有 185 个软件包未被升级。
需要下载 19.2 MB 的归档。
解压缩后会消耗 61.5 MB 的额外空间。
您希望继续执行吗? [Y/n] Y

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

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

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

现在查看已365体育官方中文版赌博_体育彩票管理365_365 体育 注册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

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

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

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

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

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

接着查看

选择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++)

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

365体育官方中文版赌博_体育彩票管理365_365 体育 注册后查看版本,如下图所示:

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.

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

2. 编写C源代码

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

#include
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++编译开发环境及GCC多版本切换

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

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

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-04/158258.htm

linux
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* Dmouse会员 发表于 2019/5/6 22:41:19
扣扣