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

Windows 64位使用MinGW编译Numba源码生成wheel时报链接错误求助

编译报错根因

链接阶段抛出的undefined reference to __imp__Numba_hashtable_*类错误是核心问题,触发原因如下:

  • Numba源码针对Windows平台的公共函数默认标记了dllimport属性,但你使用MinGW编译时,_hashtable.c的实现没有对应生成dllexport导出符号,导致_typeof.c引用的导入符号找不到实际实现,链接失败。
  • Numba官方的构建配置默认适配Visual Studio编译器,没有兼容MinGW的符号导出规则。
  • 开头的Distutils导入顺序警告也可能引发不可预期的构建错误,需要优先修复。
修复配置步骤
  • 修复Distutils导入顺序问题,执行编译命令时优先导入setuptools,替换原有编译命令为:
    py -c "import setuptools; exec(open('setup.py').read())" bdist_wheel
    
  • 编译前添加导出符号宏定义,解决符号不匹配问题,在cmd中依次执行:
    set CFLAGS=-DNUMBA_EXPORT_SYMBOLS %CFLAGS%
    set CXXFLAGS=-DNUMBA_EXPORT_SYMBOLS %CXXFLAGS%
    rd /s /q build
    
  • 可选优化:如果不需要TBB支持,可在编译命令后添加--without-tbb参数,消除TBB未找到的警告,避免额外依赖引入问题。
  • 可选消除无效警告:修改setup.py中编译器参数配置,移除仅适用于C语言的-Wstrict-prototypes参数,避免C++编译时的参数无效警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:06:01