使用speex庫出現問題,怎么啟用CPU的SSE呢?


使用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"

4 个解决方案

#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運算嗎?編譯器的相關配置已經配置了。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: