【C++】GCC对应C++的版本支持

1、查看当前GCC的版本

pf@fNUC12WSKi7:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) 

可以看到对应的gcc的版本为9.4.0

2、gcc,g++,GNU之间的关系,待补充

GCC:GNU Compiler Collection(GUN 编译器集合),最初是作为C语言的编译器(GNU C Compiler),现在可以编译C、C++、JAVA、Fortran、Pascal、Object-C、Ada等语言
gcc是GCC中的GUN
C Compiler(C 编译器) g++是GCC中的GUN C++ Compiler(C++编译器)

gcc 和 g++ 的区别无非就是调用的编译器不同, 并且传递给链接器的参数不同,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler

g++:

g++ 会把 .c 文件当做是 C++ 语言 (在 .c 文件前后分别加上 -xc++ 和 -xnone, 强行变成 C++), 从而调用 cc1plus 进行编译
g++ 遇到 .cpp 文件也会当做是 C++, 调用 cc1plus 进行编译
g++ 还会默认告诉链接器, 让它链接上 C++ 标准库
gcc:

gcc 会把 .c 文件当做是 C 语言. 从而调用 cc1 进行编译
gcc 遇到 .cpp 文件, 会处理成 C++ 语言. 调用 cc1plus 进行编译
gcc 默认不会链接上 C++ 标准库
只要是 GCC 支持编译的程序代码,都可以使用 gcc 命令完成编译。可以这样理解,gcc 是 GCC 编译器的通用编译指令,因为根据程序文件的后缀名,gcc 指令可以自行判断出当前程序所用编程语言的类别

但如果使用 g++ 指令,则无论目标文件的后缀名是什么,该指令都一律按照编译 C++ 代码的方式编译该文件。也就是说,对于 .c 文件来说,gcc 指令以 C 语言代码对待,而 g++ 指令会以 C++ 代码对待。但对于 .cpp 文件来说,gcc 和 g++ 都会以 C++ 代码的方式编译

因此并不能说gcc只能编译C代码,g++只能编译C++代码

不能用gcc编译C++程序的原因是:gcc在链接时不能自动和C++程序使用的库联接,因此只能使用g++来完成链接过程

https://gcc.gnu.org/releases.html对应官网

Release	Release date
GCC 13.2	July 27, 2023
GCC 10.5	July 7, 2023
GCC 11.4	May 29, 2023
GCC 12.3	May 8, 2023
GCC 13.1	April 26, 2023
GCC 12.2	August 19, 2022
GCC 10.4	June 28, 2022
GCC 9.5	May 27, 2022
GCC 12.1	May 6, 2022
GCC 11.3	April 21, 2022
GCC 11.2	July 28, 2021
GCC 9.4	June 1, 2021
GCC 8.5	May 14, 2021
GCC 11.1	April 27, 2021
GCC 10.3	April 8, 2021
GCC 10.2	July 23, 2020
GCC 10.1	May 7, 2020
GCC 9.3	March 12, 2020
GCC 8.4	March 4, 2020
GCC 7.5	November 14, 2019
GCC 9.2	August 12, 2019
GCC 9.1	May 3, 2019
GCC 8.3	February 22, 2019
GCC 7.4	December 6, 2018
GCC 6.5	October 26, 2018
GCC 8.2	July 26, 2018
GCC 8.1	May 2, 2018
GCC 7.3	January 25, 2018
GCC 5.5	October 10, 2017
GCC 7.2	August 14, 2017
GCC 6.4	July 4, 2017
GCC 7.1	May 2, 2017
GCC 6.3	December 21, 2016
GCC 6.2	August 22, 2016
GCC 4.9.4	August 3, 2016
GCC 5.4	June 3, 2016
GCC 6.1	April 27, 2016
GCC 5.3	December 4, 2015
GCC 5.2	July 16, 2015
GCC 4.9.3	June 26, 2015
GCC 4.8.5	June 23, 2015
GCC 5.1	April 22, 2015

GCC的支持情况
GCC编译器对不同的C++标准的支持情况:

C++17
gcc7完全支持,gcc6和gcc5部分支持,gcc6支持度当然比gcc5高,gcc4及以下版本不支持。
C++14
gcc5完全支持,gcc4部分支持,gcc3及以下版本不支持。
C++11
gcc4.8.1及以上完全支持。gcc4.3部分支持,gcc4.3以下版本不支持。

对应表格:
在这里插入图片描述
引用,侵删

### 回答1: PyTorch 是一个用于科学计算和深度学习的 Python 库,它能够在 CPU 和 GPU 上高效地运行。PyTorch 通过使用类似 NumPy 的语法和动态计算图来简化了深度学习模型的实现。 CUDA 是 NVIDIA 开发的用于高性能计算的并行计算平台和编程模型,它使得程序能够在 NVIDIA GPU 上并行执行。CUDA 能够显著提高深度学习模型的训练速度。 GCC 是 GNU Compiler Collection 的缩写,它是一款优秀的开源编译器,支持多种编程语言,如 C、C++、Objective-C、Java、Ada 和 Fortran 等。在 Linux 上,GCC 通常是默认的 C/C++ 编译器。 PyTorch 可以与 CUDA 和 GCC 一起使用,以便在 GPU 上加速深度学习模型的训练和推断。要在 PyTorch 中使用 CUDA,您需要安装适当的 CUDA 版本和 CuDNN 库。要在 PyTorch 中使用 GCC,您需要确保安装了合适的版本,并且将其配置为默认编译器。 ### 回答2: PyTorch和CUDA GCC是不同的软件工具。PyTorch是一个用于深度学习的开源框架,而CUDA GCC是用于编译和优化CUDA代码的编译器工具。 PyTorch的版本与CUDA GCC版本之间没有直接的对应关系。PyTorch有自己的版本号体系,用于区分不同的发布版本。每个PyTorch发布版本都可以兼容一定范围内的CUDA运行时版本。 而CUDA GCC版本则与NVIDIA的CUDA Toolkit版本相关联。CUDA Toolkit提供了用于开发和运行CUDA应用程序的一系列工具和库。每个CUDA Toolkit版本都包含了特定的CUDA GCC版本,用于编译CUDA代码。 在选择PyTorch和CUDA GCC版本时,应该首先了解两者的兼容性。一般来说,PyTorch的官方文档会明确指出支持的CUDA版本范围。同时,NVIDIA官方也会在CUDA Toolkit的文档中列出支持的CUDA GCC版本。 为了确保PyTorch与CUDA GCC的兼容性,应该选择满足两者要求的版本。在安装PyTorch时,可以通过指定合适的CUDA版本来确保PyTorch与CUDA GCC的兼容性。 总结而言,PyTorch和CUDA GCC是两个相互独立的工具,没有直接的版本对应关系。在选择版本时,要注意PyTorch和CUDA GCC的兼容性,以确保代码的正常运行。 ### 回答3: PyTorch和CUDA的版本之间是有对应关系的。PyTorch是一个使用GPU加速的深度学习框架,而CUDA是NVIDIA公司提供的GPU并行计算平台和编程模型。 PyTorch的版本通常会与其所支持的CUDA版本对应。PyTorch的每个主要版本都会明确声明其所需要的最低CUDA版本。比如,PyTorch 1.8版本需要CUDA 10.2及以上的版本。也就是说,如果想要使用PyTorch 1.8,必须安装CUDA 10.2或更高版本的驱动和库。 需要注意的是,CUDA版本与GPU型号是一一对应的,并非所有老旧的GPU都支持最新的CUDA版本。因此,在选择PyTorch和CUDA版本时,还要考虑自己的GPU型号是否与目标CUDA版本兼容。 另外,GCC(GNU Compiler Collection)是一套开源的编程语言编译器集合,其中包含了C、C++语言的编译器。与PyTorch和CUDA的版本对应无关,GCC版本的选择主要取决于操作系统和具体的代码编译要求。通常情况下,PyTorch和CUDA的版本并不要求特定的GCC版本。 总结而言,PyTorch和CUDA的版本对应关系,PyTorch会明确声明所需的最低CUDA版本。而GCC编译器的版本选择与PyTorch和CUDA的版本无关,主要依赖于操作系统和编译需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值