#“错误”;SSE2指令集未启用“;包括时<;埃敏特林.h>; 我尝试编译一些C++代码,并使用Cube ,获得以下错误: #error "SSE2 instruction set not enabled"
我有一个带有Linux(Mint)系统(内核3.5)的Intel Celeron双核处理器 根据维基百科,赛扬双核能够执行SSE2指令,SSE2标志根据#“错误”;SSE2指令集未启用“;包括时<;埃敏特林.h>; 我尝试编译一些C++代码,并使用Cube ,获得以下错误: #error "SSE2 instruction set not enabled",c++,linux,cmake,intel,sse2,C++,Linux,Cmake,Intel,Sse2,我有一个带有Linux(Mint)系统(内核3.5)的Intel Celeron双核处理器 根据维基百科,赛扬双核能够执行SSE2指令,SSE2标志根据/proc/cpuinfo设置。但作者提到了英特尔赛扬有限的SSE支持 我已经尝试在我的CMakeLists.txt中使用SSE编译器选项: set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3") ……但一切都没有改变cmake。工作正常,但make给出了上述错误消息 我是否必须更改C
/proc/cpuinfo
设置。但作者提到了英特尔赛扬有限的SSE支持
我已经尝试在我的CMakeLists.txt
中使用SSE编译器选项:
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3")
……但一切都没有改变<代码>cmake。工作正常,但make
给出了上述错误消息
我是否必须更改CMakeLists.txt中的设置,或者赛扬双核是否不(完全)支持SSE2 你需要打电话
set(CMAKE_C_标志${CMAKE_C_标志})-msse-msse2-msse3”)
设置(CMAKE_CXX_标志“${CMAKE_CXX_标志}-msse-msse2-msse3”)
< > >代码> CMACHYCXFLAG/<代码>应用于C文件,从您的POST的C++标签中,我猜您正在编译C++文件,因此需要更改<代码> CMACHYCXXFLAG/<代码>。
至于引号的位置;在原始版本中,您将CMAKE\u C\u FLAGS
设置为包含两个单独的条目,第一个是CMAKE\u C\u FLAGS
的起始值,第二个是字符串“-msse-msse2-msse3”
CMake将这样的列表作为分号分隔的条目保存。对于
CMAKE\uu标志
,它们总是由包含所有必需标志的字符串组成的单个值。是否检查BIOS设置?是的,我的BIOS没有启用或禁用SSE的设置。cmake和make不一一映射。如果您正在使用生成的makefile进行make,请确保它已包含这些SSE2标志。您是否尝试过设置(CMAKE_cu flags“${CMAKE_cu flags}-msse-msse2-msse3”)
(注意引号的位置)或设置(CMAKE_CXX标志“${CMAKE_CXX标志}-msse-msse2-msse3”)
?设置(CMAKE_CXX标志“${CMAKE CXX标志”}-msse-msse2-msse3“
有效!非常感谢。你知道为什么吗?请把你的评论作为答案贴出来,这样我就可以接受了……这可以拯救我的一天。非常感谢你。(尝试在hadoop上构建bwa)。有没有一种可移植的方法可以做到这一点??特别是在现代的CMake中,比如基于目标的,您不应该操纵全局CXX标志。现在这样做似乎是错误的。