g++:AVX指令不存在

5

当我在C++中编写程序并进行编译时(针对最新的Macbook pro,当然支持AVX指令集),我遇到了以下错误。我正在使用从Macports获取的最新版本的g++。您有任何想法可以修复错误而不限制编译器可用的指令集吗?是否应该尝试更新特定的软件包?

g++-mp-4.7 -std=c++11 -Wall -Ofast -march=native -fno-rtti src/raw_to_json.cpp -o bin/raw_to_json.bin
/var/folders/83/tjczqmxn1y9166m642_rxdlw0000gn/T//cc0hIx0w.s:1831:no such instruction: `vpxor %xmm0, %xmm0,%xmm0'
/var/folders/83/tjczqmxn1y9166m642_rxdlw0000gn/T//cc0hIx0w.s:1847:no such instruction: `vmovdqa %xmm0, 96(%rsp)'
/var/folders/83/tjczqmxn1y9166m642_rxdlw0000gn/T//cc0hIx0w.s:1848:no such instruction: `vmovdqa %xmm0, 112(%rsp)'
/var/folders/83/tjczqmxn1y9166m642_rxdlw0000gn/T//cc0hIx0w.s:1849:no such instruction: `vmovdqa %xmm0, 128(%rsp)'
/var/folders/83/tjczqmxn1y9166m642_rxdlw0000gn/T//cc0hIx0w.s:1850:no such instruction: `vmovdqa %xmm0, 144(%rsp)'
/var/folders/83/tjczqmxn1y9166m642_rxdlw0000gn/T//cc0hIx0w.s:1851:no such instruction: `vmovdqa %xmm0, 160(%rsp)'

感谢您的帮助!

可能是如何在Mac OS X Lion上使用AVX/pclmulqdq的重复问题。 - Jukka Suomela
2个回答

6
我遇到的问题得到了一个更简单的解决方案,就是将-Wa,-q添加到编译器标志中。从as(版本1.38)的手册中可以看到:

-q使用clang(1)集成的汇编器,而不是基于GNU的系统汇编器。


4
由于Conrado PLG在他自己的问题这里的回答,问题已得到解决。简而言之,我需要执行以下操作:
  1. 移动或删除旧的as,位于/opt/local/bin/../local/libexec/as/x86_64/as
  2. 将Vincent Habchi的脚本,位于这里,复制到/opt/local/bin/../local/libexec/as/x86_64/as
  3. sudo chmod +x该脚本。
请注意,由于调用汇编器需要先通过shell脚本,因此可能会出现一些性能下降。

2
请注意,随 Xcode 一起提供的 clang 编译器也支持 AVX。 - Paul R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接