有时(并非总是)当我在项目中包含我的数学标题时,编译器会抱怨(尝试gcc和clang)_mm_shuffle_ps
和_mm_shuffle_pd
未被声明,即使所有编译器标志都已设置({ {1}})并且包含了正确的标头(-msse -msse2 -msse3
)。
以下是我如何使用这些功能:
<x86intrin.h>
然后我在这些类上定义了一堆运算符重载,以便于使用。
这就是我使用这些函数的方式,因为编译器不会抱怨这些类中定义的任何其他sse函数。
记住编译器并不总是抱怨这个并且有些项目使用这个头文件编译得很好,我究竟能在这里做错什么?或者这是编译器错误?
答案 0 :(得分:1)
在提出这个问题之后几乎马上想出来(尽管我现在已经试图解决这个问题几个小时了。)
如果没有设置优化标志,GCC将从编译中发出一些sse函数。怪异。
将 -O3
添加到我的编译标志就可以了。
所以我仍然在clang中遇到错误,但在gcc 4.8中设置-O3
修复了错误:/