2014-01-27 83 views
0

我試圖使用Visual Studio 2005來編譯Win64上libvpx-V1.3.0但是,我最終得到下面的錯誤轉換,錯誤:無法從「詮釋」到「__m128」

..\libvpx-1.3.0\vp9\common\x86\vp9_loopfilter_intrin_sse2.c(36) : error C2440: 'function' : cannot convert from 'int' to '__m128' 

燦你請幫我解決這個問題?

編輯:這個錯誤,我得到兩個警告之前,

2>..\libvpx-1.3.0\vp9\common\x86\vp9_loopfilter_intrin_sse2.c(35) : warning C4013: '_mm_castps_si128' undefined; assuming extern returning int 
2>..\libvpx-1.3.0\vp9\common\x86\vp9_loopfilter_intrin_sse2.c(35) : warning C4013: '_mm_castsi128_ps' undefined; assuming extern returning int 

難道是因爲'_mm_castps_si128''_mm_castsi128_ps'不會爲Visual Studio 2005中定義的?

感謝

+1

你按照這個指南:http://www.webmproject.org/code/build-prerequisites/? – Plexico

+0

是的,我遵循了指南中給出的所有步驟。 – Josh

回答

1

答案就在這個環節給出:https://groups.google.com/a/webmproject.org/forum/#!topic/webm-discuss/C5nzgPiPDF4

我通過添加定義爲這些功能擴展在vpx_ports/emmintrin_compat.h文件:

#if (_MSC_VER == 1400) 
// For Visual Studio 2005 
__inline __m128i _mm_castps_si128(__m128 PS) { union { __m128 ps; __m128i pi; } c; c.ps = PS; return c.pi; } 
__inline __m128 _mm_castsi128_ps(__m128i PI) { union { __m128 ps; __m128i pi; } c; c.pi = PI; return c.ps; } 
__inline __m128d _mm_castsi128_pd(__m128i PI) { union { __m128i pi; __m128d pd; } c; c.pi = PI; return c.pd; } 
#endif 

這種變化固定問題。

相關問題