究竟是什么-march = native呢?

Gyö*_*sek 19 c c++ gcc gcc4

Gentoo Wiki告诉我以下内容:

警告:GCC 4.2及以上版本支持-march = native.-march = native应用超出-march的其他设置,特定于CPU.除非您有特殊原因(例如,distcc交叉编译),否则您应该使用-march = native,而不是下面列出的任何内容.

那些额外的设置是什么?

Gyö*_*sek 13

没关系.

$ cc -march=core2 -E -v - </dev/null 2>&1 | grep cc1
 /[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2

$ cc -march=native -E -v - </dev/null 2>&1 | grep cc1
 /[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2
Run Code Online (Sandbox Code Playgroud)

我开始喜欢这个选项了很多.-mcx16并且-msahf是gcc现在可以使用的另外两个CPU指令,这些指令在早期的Core2中是不可用的.

  • @hans:大声笑,但OP正在与Gentoo合作.这意味着没有人分发二进制文件,只有代码可以在运行它的机器上编译. (11认同)
  • 奇怪的.您是否将构建机器与软件一起发运? (5认同)