调用 always_inline '_mm_mullo_epi32' 时内联失败:目标特定选项不匹配 [英] inlining failed in call to always_inline ‘_mm_mullo_epi32’: target specific option mismatch
问题描述
我正在尝试使用使用 SIMD 内在函数的 cmake 编译 C 程序.当我尝试编译它时,出现两个错误
I am trying to compile a C program using cmake which uses SIMD intrinsics. When I try to compile it, I get two errors
/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:326:1: 错误:调用 always_inline '_mm_mullo_epi32' 时内联失败:目标特定选项错配_mm_mullo_epi32 (__m128i __X, __m128i __Y)
/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:326:1: error: inlining failed in call to always_inline ‘_mm_mullo_epi32’: target specific option mismatch _mm_mullo_epi32 (__m128i __X, __m128i __Y)
/usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: 错误:调用 always_inline '_mm_shuffle_epi8' 时内联失败:目标特定选项错配_mm_shuffle_epi8 (__m128i __X, __m128i __Y)
/usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline ‘_mm_shuffle_epi8’: target specific option mismatch _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
这里已经解决了这个问题StackOverflow 通过设置
This issue has already been solved here StackOverflow by setting
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
我尝试了相同的选项和许多其他选项.但是我的项目仍然无法编译.
I try the very same and many other options. But my project still fails to compile.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -sse4_1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=nehalem")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1 -msse4.2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ssse3")
推荐答案
由于您正在编译 C 代码,而不是 C++,您需要:
Since you are compiling C code, not C++, you need:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1")
你可以去掉所有其他的 -march XXX
和 -msseXXX
设置.
You can get rid of all the other -march XXX
and -msseXXX
settings.
如果您混合使用 C 和 C++,那么您还可以添加:
If you're using a mix of C and C++ then you could also add:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
这篇关于调用 always_inline '_mm_mullo_epi32' 时内联失败:目标特定选项不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!