inlining не удалось выполнить вызов always_inline ‘_mm_mullo_epi32’: указать несоответствие конкретного параметра

Я пытаюсь скомпилировать C-программу, используя cmake, которая использует SIMD-функции. Когда я пытаюсь скомпилировать его, я получаю две ошибки

/ usr / lib / gcc / x86_64-linux-gnu / 5 / include / smmintrin.h : 326: 1: ошибка: сбой inlining при вызове always_inline ‘_mm_mullo_epi32’: целевое задание нестандартного опциона _mm_mullo_epi32 (__m128i __X, __m128i __Y)

/ usr / lib / gcc / x86_64-linux-gnu / 5 / include / tmmintrin.h : 136: 1: ошибка: сбой inlining в вызове always_inline ‘_mm_shuffle_epi8’: целевое задание нечеткой опции _mm_shuffle_epi8 (__m128i __X, __m128i __Y)

Эта проблема уже решена здесь StackOverflow , установив

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1") 

Я пробую то же самое и многие другие варианты. Но мой проект все еще не компилируется.

 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 ++, вам необходимо:

 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1") 

Вы можете избавиться от всех остальных параметров -march XXX и -msseXXX .

Если вы используете сочетание C и C ++, вы также можете добавить:

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")