You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译器无法识别_mm_cbrt_ps等SIMD intrinsic函数,求配置方案

解决__m128向量立方根等intrinsic函数不被识别的编译问题

你需要调整编译相关配置,具体修改如下:

  • 补充指令集编译标志
    _mm_cbrt_ps、_mm_pow_ps这类数学相关的SIMD intrinsic依赖FMA指令集支持,在编译选项中添加-mfma。修改后的target_compile_options配置应为:

    target_compile_options(untitled9 PRIVATE -march=native -mavx2 -msse2 -mfma)
    

    虽然-march=native会自动检测宿主机CPU指令集,但虚拟机环境可能存在识别偏差,显式添加-mfma能确保兼容性。

  • 升级C标准版本
    当前配置的C99标准对部分新intrinsic函数支持不足,将C标准升级到C11:

    set(CMAKE_C_STANDARD 11)
    
  • 代码中包含正确的头文件
    必须在你的C源码中引入immintrin.h头文件,它包含了所有AVX、SSE系列intrinsic的定义:

    #include <immintrin.h>
    

    缺少这个头文件,编译器根本无法识别这些intrinsic函数。

  • 验证编译器版本
    确保使用的GCC版本≥5.0(Clang≥3.5),老版本编译器对新SIMD intrinsic的支持不完善。可在终端执行gcc --version确认版本,版本过低需升级编译器。

另外,你配置的-no-pie标志可以保留,不会影响intrinsic函数的识别。

内容的提问来源于stack exchange,提问作者someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:08:15