从Fedora 25升级到26后,默认的gcc版本现在是版本7.1.1,gcc -dumpversion
的输出已从major.minor.patch更改为major。
新产品:
$ gcc -dumpversion
7
手册说明
-dumpversion
打印编译器版本(例如,3.0,6.3.0或7) - 不要这样做 还要别的吗。这是文件系统路径中使用的编译器版本, specs,可以取决于编译器的配置方式 单个数字(主要版本),两个用点分隔的数字(主要和 小版本)或由点分隔的三个数字(主要,次要和 补丁级版本。
我还没有找到更改此编译器配置的位置,以包含用点配置的三个数字。我找到的最接近的是仅限主要版本的配置:
- with-gcc-major-version-only指定GCC在文件系统路径中只应使用主编号而不是major.minor.patchlevel。
答案 0 :(得分:9)
我一起使用了两个选项:
gcc -dumpfullversion -dumpversion
这似乎以统一的方式适用于新旧:
[root@zeta ~]# gcc -dumpfullversion -dumpversion
4.4.7
[jenkins@build-el7 ~]$ gcc -dumpfullversion -dumpversion
7.2.1
答案 1 :(得分:2)
经过一些研究后我发现配置版本是编译时选项(如果从源代码编译编译器)。
我还发现有一个新的gcc -dumpfullversion
选项可以提供完整的版本号,即7.1.1,这是我们的构建系统所期望的。小警告是旧版本的gcc不支持-dumpfullversion
。
因此我们必须更改构建系统以通过gcc -dumpversion
获取版本并检查其是否为单个数字,如果是,则替换-dumpfullversion
以获取完整的major.minor.patch gcc版本。