can’t convert between vector values of different size return (__m64) __builtin_ia32_vec_init_v2si

来源:互联网 发布:mysql可视化工具使用 编辑:程序博客网 时间:2024/06/06 16:49

在cmake编译的时候,发现报大量的错误:

can’t convert between vector values of different size return (__m64) __builtin_ia32_vec_init_v2si (__i0, __i1);
                                                          ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/mmintrin.h: 在函数‘__m64 _mm_set_pi16(short int, short int, short int, short int)’中:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/mmintrin.h:866:70: 错误:can’t convert between vector values of different size
   return (__m64) __builtin_ia32_vec_init_v4hi (__w0, __w1, __w2, __w3);
                                                                      ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/mmintrin.h: 在函数‘__m64 _mm_set_pi8(char, char, char, char, char, char, char, char)’中:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/mmintrin.h:875:35: 错误:can’t convert between vector values of different size
             __b4, __b5, __b6, __b7);

使用的是编译选项:

--std=c++11

解决方法:

第一种方法:修改成--std=gnu++11 重新编译正常

第二种方法:添加-U__STRICT_ANSI__ 这个宏定义,重新编译OK

0 0
原创粉丝点击