【发布时间】:2021-03-21 11:05:50
【问题描述】:
我正在尝试使用使用 SIMD 内在函数的 cmake 编译 C 程序。当我尝试编译它时,我得到了两个错误
/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/tmmintrin.h:136:1: 错误:调用 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")
【问题讨论】: