我正在尝试使用cmake和make编译一些使用<emmintrin.h>
头文件的C++代码,但是出现了以下错误:
#error "SSE2 instruction set not enabled"
我有一颗Intel Celeron双核处理器,运行Linux(Mint)系统(内核3.5)。
根据维基百科,Celeron双核能够执行SSE2指令,并且根据/proc/cpuinfo
设置sse2标志。但是这个问题的提问者提到了Intel Celeron的有限SSE支持。
我已经尝试在我的CMakeLists.txt
中使用SSE编译选项:
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3")
..但是没有任何改变。 cmake .
运行良好,但 make
提示上述错误信息。
我是否需要更改CMakeLists.txt中的设置,或者Celeron Dual Core是否(完全)不支持SSE2?
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -msse2 -msse3")
(注意引号的位置)或者set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3")
吗? - Fraserset(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3")
可以正常工作!谢谢!你有任何想法为什么会这样吗?请把你的评论发布为答案,这样我就可以接受它了... - Suzana