Suz*_*ana 4 c++ linux intel cmake sse2
我正在尝试使用cmake编译一些C++代码并使用include来<emmintrin.h>获取以下make错误:
#error "SSE2 instruction set not enabled"
Run Code Online (Sandbox Code Playgroud)
我有一个带有Linux(Mint)系统的Intel Celeron双核处理器(内核3.5).
根据维基百科,赛扬双核能够执行SSE2指令,并根据sse2标志设置/proc/cpuinfo.但是这个问题的作者提到了英特尔赛扬的有限SSE支持.
我已经尝试在我的中使用SSE编译器选项CMakeLists.txt:
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3")
Run Code Online (Sandbox Code Playgroud)
..但没有改变.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")Run Code Online (Sandbox Code Playgroud)
将CMAKE_C_FLAGS被应用到C文件,并从您的文章的C++代码,我想你是编译的C++文件,因此需要改变CMAKE_CXX_FLAGS来代替.
至于引号的定位; 在原始版本中,您设置CMAKE_C_FLAGS为包含2个单独的条目,第一个是起始值CMAKE_C_FLAGS,第二个是字符串"-msse -msse2 -msse3".
CMake将这样的列表保存为分号分隔条目.在这种情况下CMAKE_<lang>_FLAGS,它们总是由包含所有必需标志的字符串组成的单个值.
| 归档时间: |
|
| 查看次数: |
10561 次 |
| 最近记录: |