【问题标题】:gcc generic march for all the x64 platforms适用于所有 x64 平台的 gcc 通用行军
【发布时间】:2013-04-29 07:44:03
【问题描述】:

GCC 有-march=-mtune 选项,如here 所述。但是,对于 x64 平台选择哪个选项作为通用选项并不明显。比如说,-mtune= 具有 generic 值,但 x64-march= 没有。

我怀疑-march=nocona(随处可见)甚至-march=i686 -m64 是解决方案,但我不确定。

【问题讨论】:

  • 你需要澄清你想要什么?您是在 32 位系统上编译 64 位可执行文件,还是打算将您的应用程序仅用于 64 位系统?
  • 64位主机和目标(不失一般性)
  • 我希望程序完全启动(从古老的 x64 到现代的 corei7-avx)处理器。
  • 默认的通用的。也就是说,根本不传递任何选项。
  • @MarcGlisse:默认是在构建 GCC 时传递给 configure 脚本的任何内容。

标签: gcc 64-bit


【解决方案1】:

通用 x86-64 -march-march=x86-64

通常是针对 x86-64 的 GCC 的默认值,但可以在 configure 时间通过将适当的值传递给 --with-arch 来更改该默认值。

【讨论】:

  • 但是echo "" | gcc -v -E - 2>&1 | grep cc1 产生以下内容:c:/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/4.8.0/cc1.exe -E -quiet -v -iprefix c:\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.8.0/ -D_REENTRANT - -mtune=core2 -march=nocona
  • @Dukales:在我的机器上它产生/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/cc1 -E -quiet -v - -mtune=generic -march=x86-64。请参阅关于--with-arch 的要点。
  • 谢谢。所以,这取决于 GCC/MinGW 的构建。
  • @Dukales 该输出仅显示用于构建 GCC 可执行文件的优化,在您的情况下调整为 Intel Core2 CPU 并使用最高 SSE3 的所有内容。
  • @Dukales 哈哈,是的。这只是危险的,因为人们期望一个可执行的编译默认选项(没有-march)可以在所有 CPU 上工作。在这种情况下不会。小心:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多