擅长:python、mysql、java
<p>我使用<code>gcc -march=native -Q help=target</code>来比较几个Linux机器上的gcc设置。
我发现主要的区别是故障机器上的<code>-march</code>行是<code>haswell</code>,其他的是<code>haswell</code>
像<code>core...</code>。以下是来自其他服务器的相应输出:</p>
<p><code>CentOS release 6.5 (Final)</code>-<code>-march=corei7-avx</code></p>
<p><code>CentOS Linux 7 (Core)</code>-<code>-march=core-avx-i</code></p>
<p><code>Debian GNU/Linux 7 (wheezy)</code>-<code>-march=core-avx2</code></p>
<p>我猜错误来自gcc使用的不同指令集。
在naugle的<code>setup.py</code>中,<code>-march=native</code>行中的<code>-march=native</code>意味着gcc将尝试检测处理器并自动为其设置适当的标志。
所以我将这个标志改为<code>-march=corei7-avx</code>,在<code>setup.py</code>中,错误消失了。在</p>
<p>如果您感兴趣,请参阅<a href="https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options" rel="noreferrer">here</a>中的<code>-march</code>以获取详细信息。在</p>
<h2>更新</h2>
<p>在与服务器管理员确认后,此错误是由于CentOS loader软件比服务器中新的Haswell CPU旧。安装最新版本的<code>binutils</code>包也可以解决此问题。在</p>