关键词:
g++
跟gcc
之间是否有依赖关系
g++
跟gcc
之间没有依赖关系,两者分别对应面向C++和C语言的编译程序,关于gcc
和g++
的区别,请参考知乎回答《gcc和g++是什么关系? ——gcc 和 g++ 的区别》
1 Ubuntu环境配置
Ubuntu官方源提供gcc和g++预编译版本
Ubuntu-20.04官方源中目前最高提供了 gcc-11的安装包;
Note
我们尝试在Ubuntu-20.04上执行命令安装 gcc-12:sudo apt install gcc-12 g++-12
不过报错:
E: 无法定位软件包 gcc-12
E: 无法定位软件包 g++-12
所以目前我们准备在 Ubuntu-20.04使用gcc-11。
查询Ubuntu默认使用的gcc版本
cat /proc/version
示例结果:
Linux version 5.4.0-128-generic (buildd@lcy02-amd64-017) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #144-Ubuntu SMP Tue Sep 20 11:00:04 UTC 2022
这里可以看到当前系统默认使用的gcc版本是9.4.0。
查看已经安装gcc&g++的文件目录
查看gcc版本
ls /usr/bin/gcc*
查看g++版本
ls /usr/bin/g++*
设置gcc&g++版本优先级
Gcc
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 30
G++
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 30
查看运行时gcc&g++版本
Gcc
gcc --version
G++
g++ --version
Note
这里我们在终端查询版本时,没有使用简化命令gcc | g++ -v
,这是因为使用g++ -v
查询g++版本时,输出信息中会包含gcc的字样,看起来有些迷惑,并且输出信息较多显得有些复杂,为了查询结果的直观感受,这里我们统一使用gcc | g++ --version
。
使用C++输出编译器版本号
cout << __VERSION__ << endl;
1.2 Windows环境配置:MSYS2
环境管理工具:MSYS2
编程IDE:VSCode
关于在Windows上基于VSCode配置C++编程环境,请参考《C/C++ for Visual Studio Code》
升级MSYS2
pacman -Suy
1.3 Troubleshooting
(1)Windows运行出现错误:Unable to start debugging.Unexpected GDB output from command … local\\***中文路径***\\program: No such file or directory
我们在开始学习使用VSCode编程时,遇到了这样的一个问题:
解决方案
- 程序路径中存在中文字符使得
gdb
无法正常调试:
将程序路径中的中文修改为英文。
(2)Windows上使用PlantUML插件预览时预览窗出现空白
我们在VSCode上使用PlantUML插件预览puml图形时,发现预览窗出现空白;
解决方案
因为主机的Win系统上没有安装Java环境(java -version
无法正常输出版本号);
c++基础学习笔记(代码片段)
一、简介C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。二、基本语法1、注释#include<iostream>usingnamespacestd;intmain()/*这是注释*//*C++注释也可以*跨行*... 查看详情
《c++多线程编程》学习笔记(代码片段)
文章目录线程安全的对象生命期管理当析构函数遇上多线程对象的创建对象池线程同步精要互斥器(mutex)条件变量(conditionvariable)慎用读写锁多线程服务器的适合模型与常用编程模型oneloopperthread+threadpool进... 查看详情
001.windows环境vulkan学习笔记起始篇(代码片段)
...重构,本人从事近6年的C#开发现需要快速转C++,但是看书学习内容太多记不住,所以打算从Vulkan入手写一些东西。 为什么选择Vulkan而不是OpenGL或者别的? 1、因为个人感觉Vulkan会在未来几年取代OpenGL,会对... 查看详情
c++学习笔记(代码片段)
...大大小小的c++程序中,模板无处不在。c++templates作为模板学习的经典书籍,历来被无数c++学习者所推崇。第二版书籍覆盖了c++1114和17标准,值得程序猿们精读学习,特此整理学习笔记,将每一部分自认为较为重要的部分逐条陈列... 查看详情
01梦开始的地方,阿仁的c++学习笔记(p2~)(代码片段)
...要的考虑和受大佬室友的影响,实习之余,本菜鸡将开始学习c++。用的是bilibil播放量最多的那个c++入门课程,环境是vscode,开此贴为笔记之用。1、第一个helloworld程序1#include<iostream>2usingnamespacestd;34intmain()56cout<<"helloworld"... 查看详情
c++下opencv学习笔记(图像的简单读取丶显示与存储)(代码片段)
C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)前言 学习C++OpenCV,第一需要具备向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门。觉得自己基础已经有了可以忽略... 查看详情
c++元编程的学习笔记(代码片段)
1.C++元编程的标志性语法template<>typenamestruct||classusing2.NotesA.变长模板不能使用符号来整体表示这个观点源于我们在写“使用模板实现大数加法的作业”时,使用模板类来实现数字序列相加,template<unsignedint...RA... 查看详情
c++学习笔记(代码片段)
C++学习笔记C++简介C++基本语法C++修饰符类型C++运算符C++数据类型C++变量类型C++变量C++常量C++循环C++判断C++函数C++数字C++数组C+ 查看详情
c++基础——ubuntu下编写c++环境配置总结(c++基本简介ubuntu环境配置编写简单c++例程)(代码片段)
...! 《QT开发实战》《嵌入式通用开发实战》《从0到1学习嵌入式Linux开发》《Android开发实战》《实用硬件方案设计》长期持续带来更多案例与技术文章分享;欢迎商业项目咨询,10年+软硬全栈内功,助力解决您... 查看详情
c++学习笔记c++输入输出流(代码片段)
文章目录C++输入流和输出流(超级详细)C++输入流和输出流C++cout.put():输出单个字符C++cout.write():输出字符串C++cout.tellp()和cout.seekp()方法详解C++tellp()成员方法C+& 查看详情
(c++设计模式)——常见设计模式学习笔记-factory模式(工厂)(代码片段)
文章目录常见设计模式学习笔记-Factory模式概述基本概念UML图解释编写代码环境概要具体代码编写测试小结个人格言常见设计模式学习笔记-Factory模式概述基本概念 日常我们开发的过程中,有时候需要用到一些只需要... 查看详情
c++基础学习笔记深入理解c++函数重载(非常重要!!!)(代码片段)
【高频面试题】1.下面两个函数能形成函数重载吗?有问题吗或者什么情况下会出问题?voidTestFunc(inta=10) cout<<"voidTestFunc(int)"<<endl;voidTestFunc(inta) cout<<"voidTestFunc(int)"<<endl;2.C语言中为 查看详情
《c++并发编程实战第二版》学习笔记目录
《C++并发编程实战第二版》学习笔记目录C++ConcurrencyInAction2nd作者:AnthonyWilliams代码资源:https://github.com/anthonywilliams/ccia_code_samples翻译资源:https://github.com/xiaoweiChen/CPP-Con 查看详情
c++异常处理的学习笔记(代码片段)
异常处理模板:try //输入一些代码catch(...) //捕获异常后,进行相关的处理关于C++中进行异常处理代码优化的讨论,可以参考《C++中错误处理的困境——OneFlow中的错误处理:Maybe》 查看详情
c++学习笔记——第一个c++程序&c++语句(代码片段)
本文使用的编译器是VScode2017,教材是C++primerplus(第六版)。我将在blog上记录C++学习的过程与问题,以供他人参考与自己查漏补缺。2.1第一个C++程序:#include<iostream>intmain() usingnamespacest 查看详情
c++学习笔记——第一个c++程序&c++语句(代码片段)
本文使用的编译器是VS2017,教材是C++primerplus(第六版)。我将在blog上记录C++学习的过程与问题,以供他人参考与自己查漏补缺。2.1第一个C++程序:#include<iostream>intmain() usingnamespacestd;// 查看详情
c++基础学习笔记c++语法之引用(代码片段)
文章目录引用引用概念引用的使用方式:引用特性常引用使用场景传值、传引用效率比较引用和指针的区别引用引用概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空... 查看详情
c++学习:第一阶段(c++基础入门)———b站黑马程序员c++学习笔记(代码片段)
文章目录C++基础入门1C++初识1.1第一个C++程序1.2注释1.3变量1.4常量1.5关键字1.6标识符命名规则2数据类型2.1整型2.2sizeof关键字2.3实型(浮点型)2.4字符型2.5转义字符2.6字符串型2.7布尔类型bool2.8数据的输入3... 查看详情