Linux 为什么gcc列出了与我实际的cpu架构不同的版本?

Linux 为什么gcc列出了与我实际的cpu架构不同的版本?,linux,gcc,compiler-optimization,Linux,Gcc,Compiler Optimization,在评估-march=native和gcc-march=native-Q--help=target支持哪些优化时,我发现gcc将我的-march列为broadwell,而不是skylake。我的机器有一个i7-7700。这可能是一个愚蠢的问题,但是有没有办法手动将行进设置为实际的本地(skylake) 版本和构建信息 4.15.0-33-generic gcc(Ubuntu 5.4.0-6ubuntu1~16.04.10)5.4.0 20160609 $ lscpu Architecture:

在评估
-march=native
gcc-march=native-Q--help=target
支持哪些优化时,我发现
gcc
将我的
-march
列为
broadwell
,而不是
skylake
。我的机器有一个i7-7700。这可能是一个愚蠢的问题,但是有没有办法手动将行进设置为实际的本地(
skylake

版本和构建信息
4.15.0-33-generic

gcc(Ubuntu 5.4.0-6ubuntu1~16.04.10)5.4.0 20160609

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 158
Model name:            Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
...

您正在使用一个旧的GCC。安装一个较新的,例如在9月份2018@BasileStarynkevitch知道了!谢谢你,正在研究各种选择。额外问题:ubuntu不会自动将GCC升级到最新版本吗?看起来很奇怪,我必须添加一个ppa来获得适合我的系统规范的GCC。你的发行版本身很旧。您应该升级(或安装)它,例如在2018年9月升级到Ubuntu 18,但16.04仍然受到积极支持/维护?我想最后一次发布是在上个月。那又怎样?升级系统GCC编译器是一个强有力的决定,并且只在新的Ubuntu版本中才会发生