时-6ren"> 时-我正在尝试使用 cmake 编译一些 C++ 代码并使用 include 并得到以下 make 错误: #error "SSE2 instruction set not enabled" 我有一个带-6ren">
gpt4 book ai didi

c++ - #error "SSE2 instruction set not enabled"包含

转载 作者:IT王子 更新时间:2023-10-29 01:15:55 26 4
gpt4 key购买 nike

我正在尝试使用 cmake 编译一些 C++ 代码并使用 include <emmintrin.h>并得到以下 make 错误:

 #error "SSE2 instruction set not enabled"

我有一个带有 Linux (Mint) 系统(内核 3.5)的 Intel Celeron 双核处理器。

根据维基百科,赛扬双核能够执行 SSE2 指令,并且根据 /proc/cpuinfo 设置了 sse2 标志。 .但是this question的作者|提到了对 Intel Celeron 的有限 SSE 支持。

我已经尝试在我的 CMakeLists.txt 中使用 SSE 编译器选项:

set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3")

..但没有任何改变。 cmake .工作正常但是make给出上面的错误信息。

我是否必须更改 CMakeLists.txt 中的设置,或者赛扬双核是否根本不(完全)支持 SSE2?

最佳答案

你需要打电话

<strike>set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3")</strike>
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3")

CMAKE_C_FLAGS应用于 C 文件,从你帖子的 C++ 标签来看,我猜你正在编译 C++ 文件,因此需要更改 CMAKE_CXX_FLAGS相反。

至于引号的定位;在您的原始版本中,您正在设置 CMAKE_C_FLAGS包含 2 个单独的条目,第一个是 CMAKE_C_FLAGS 的起始值第二个是字符串 "-msse -msse2 -msse3" .

CMake 将这样的列表保存为分号分隔的条目。在CMAKE_<lang>_FLAGS的情况下,它们总是由包含所有必需标志的字符串组成的单个值。

关于c++ - #error "SSE2 instruction set not enabled"包含 <emmintrin.h> 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16410149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com