SSE優化指令集編譯錯誤: inlining failed in call to always_inline 'xxx': target specific option mismatch xxx


在用QtCreator編譯SSE優化指令的時候,出現了如下錯誤,

 

inlining failed in call to always_inline '__m128i _mm_packus_epi32(__m128i, __m128i)': target specific option mismatch
_mm_packus_epi32 (__m128i __X, __m128i __Y)
^
該錯誤的原因是編譯的時候沒有指定對應的SSE選項。
解決辦法:在文檔中找到出錯指令對應的SSE指令集,Intel官方指令集向導,然后添加到QT工程設置中,如上述出錯的指令packusdw是在


sse4.1中,所以在QT設置中添加:
QMAKE_CXXFLAGS += "-msse4.1"
類似的還有,
QMAKE_CXXFLAGS += "-msse2"
QMAKE_CXXFLAGS += "-mssse3"
……


如果是自己寫makefile,設置辦法類似,也是添加-msse2,-msse4.1等選項。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM