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
无法正常输出版本号);