使用speex库出现问题,在vc6.0下,fatal error C1189: #error :  "SSE instruction set no enabled"
错误说是SSE没有启用,怎么可以使编译器启用SSE呢?Compiling...
SpexxTestVc6.cpp
f:\vclian\spexxtestvc6\speex\fixed_generic.h(38) : warning C4005: 'SHR' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(96) : see previous definition of 'SHR'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(39) : warning C4005: 'SHL' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(97) : see previous definition of 'SHL'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(41) : warning C4005: 'SATURATE' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(98) : see previous definition of 'SATURATE'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(43) : warning C4005: 'ADD16' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(100) : see previous definition of 'ADD16'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(49) : warning C4005: 'PSHR' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(95) : see previous definition of 'PSHR'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(52) : warning C4005: 'MULT16_16_16' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(105) : see previous definition of 'MULT16_16_16'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(54) : warning C4005: 'MULT16_16' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(106) : see previous definition of 'MULT16_16'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(59) : warning C4005: 'MAC16_16' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(107) : see previous definition of 'MAC16_16'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(61) : warning C4005: 'MULT16_32_Q13' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(110) : see previous definition of 'MULT16_32_Q13'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(62) : warning C4005: 'MULT16_32_Q14' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(111) : see previous definition of 'MULT16_32_Q14'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(64) : warning C4005: 'MULT16_32_Q11' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(109) : see previous definition of 'MULT16_32_Q11'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(65) : warning C4005: 'MAC16_32_Q11' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(114) : see previous definition of 'MAC16_32_Q11'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(67) : warning C4005: 'MULT16_32_Q15' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(112) : see previous definition of 'MULT16_32_Q15'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(68) : warning C4005: 'MAC16_32_Q15' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(115) : see previous definition of 'MAC16_32_Q15'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(71) : warning C4005: 'MAC16_16_Q11' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(117) : see previous definition of 'MAC16_16_Q11'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(73) : warning C4005: 'MULT16_16_Q11' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(118) : see previous definition of 'MULT16_16_Q11'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(74) : warning C4005: 'MULT16_16_Q13' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(119) : see previous definition of 'MULT16_16_Q13'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(75) : warning C4005: 'MULT16_16_Q14' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(120) : see previous definition of 'MULT16_16_Q14'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(76) : warning C4005: 'MULT16_16_Q15' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(121) : see previous definition of 'MULT16_16_Q15'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(86) : warning C4005: 'DIV32_16' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(123) : see previous definition of 'DIV32_16'
f:\vclian\spexxtestvc6\speex\fixed_generic.h(87) : warning C4005: 'DIV32' : macro redefinition
        f:\vclian\spexxtestvc6\speex\arch.h(124) : see previous definition of 'DIV32'
f:\vclian\spexxtestvc6\speex\xmmintrin.h(34) : fatal error C1189: #error :  "SSE instruction set no enabled"

解决方案 »

  1.   

    f:\vclian\spexxtestvc6\speex\xmmintrin.h(34) : fatal error C1189: #error : "SSE instruction set no enabled"打开这个文件,定位到34行。然后你看一下,应该有 #if udef 看看是什么需要定义?
    然后定义就好了
      

  2.   

    我再我的.cpp里面:
    #ifndef __SSE__t
    #define __SSE__t
    #endif
    结果好多错误:使用的是静态库和.h.F:\vclian\SPeex语音压缩算法静态库vs2008\libspeex\mm_malloc.h(75) : error C2491: “_aligned_free”: 不允许 dllimport 函数 的定义
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(44) : error C2146: 语法错误 : 缺少“;”(在标识符“__attribute__”的前面)
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(44) : error C3861: “__vector_size__”: 找不到标识符
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(44) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
    C3861: “__builtin_ia32_sqrtps”: 找不到标识符
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(186) : error C2065: “__always_inline__”: 未声明的标识符
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(187) : error C2433: “__attribute__”: 不允许在数据声明中使用“inline”
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(187) : error C2371: “__attribute__”: 重定义;不同的基类型
    1>        f:\vclian\speexvs2008\libspeex\xmmintrin.h(44) : 参见“__attribute__”的声明
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(187) : error C2146: 语法错误 : 缺少“;”(在标识符“_mm_rcp_ps”的前面)
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(188) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
    不允许在数据声明中使用“inline”
    1>f:\vclian\speexvs2008\libspeex\xmmintrin.h(205) : fatal error C1003: 错误计数超过 100;正在停止编译
      

  3.   

    http://msdn.microsoft.com/en-us/library/26td21ds(v=VS.90).aspx
      

  4.   

    3楼,大概看了一遍,但还是没明白,你知道,怎么设置可以是编译器支持SSE运算吗?编译器的相关配置已经配置了。