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

macOS BigSur M1芯片编译BPP出现gcc相关报错该如何解决?

M1芯片Mac编译BPP报错解决方案

你的猜测正确,报错核心原因是BPP项目的默认编译配置仅适配x86架构,硬编码了SSE3/AVX等x86专属指令集参数,M1芯片为ARM架构,不支持上述指令集,因此无论用clang还是gcc编译都会报错,可按照以下步骤解决:

  • 第一步:删除Makefile中的x86专属编译参数
    进入bpp/src目录,打开Makefile文件,删除CFLAGS配置行中的-DHAVE_SSE3 -DHAVE_AVX -DHAVE_AVX2 -msse3参数,若存在-mavx、-mavx2等x86指令集相关参数也一并删除。

  • 第二步:处理x86专属头文件引用
    打开bpp/src目录下的bpp.h文件,查找<x86intrin.h>、<immintrin.h>等x86专属SIMD头文件的引用语句,添加架构判断逻辑,修改为:

#if defined(__x86_64__) || defined(_M_X64)
#include <x86intrin.h>
#endif

如果项目本身提供了SIMD关闭开关,也可直接在编译参数中添加关闭SIMD的定义,避免手动修改头文件。

  • 第三步:重新执行编译
    先清理之前的编译缓存:
make clean

再执行编译命令即可,若你安装了gcc-11可指定编译器:

make CC=/opt/homebrew/bin/gcc-11

不需要gcc的场景下,用系统默认clang直接执行make也可。

备用兼容方案

如果修改后还是存在大量x86架构适配问题,可使用Rosetta 2转译环境编译运行:
右键点击终端应用,选择「显示简介」,勾选「使用Rosetta打开」,重启终端后再按照官方原始指引执行编译流程即可,该方案是模拟x86环境运行,兼容性更高但性能会有一定损失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 13:09:02