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

Windows下go-duckdb加载httpfs(s3)扩展失败的解决方案咨询

解决思路

1. 手动编译mingw平台的httpfs扩展

由于DuckDB v1.1.3官方未提供windows_amd64_mingw预编译的httpfs扩展,可自行编译:

  • 安装编译依赖:mingw-w64工具链、CMake、Git
  • 克隆DuckDB仓库并切换到v1.1.3标签:
    git clone https://github.com/duckdb/duckdb.git && cd duckdb && git checkout v1.1.3
    
  • 创建编译目录并配置CMake:
    mkdir build && cd build && cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
    
  • 编译httpfs扩展:
    make -j4 extension_httpfs
    
  • 编译完成后,在build/extension/httpfs路径下找到httpfs.duckdb_extension文件,在Go代码中直接加载本地扩展:
    db, err := duckdb.Open("")
    if err != nil {
        panic(err)
    }
    defer db.Close()
    
    _, err = db.Exec(`LOAD 'C:/your/path/to/httpfs.duckdb_extension';`)
    if err != nil {
        panic(err)
    }
    

2. 切换到兼容的DuckDB版本

检查DuckDB官方预编译扩展库,尝试升级/降级到提供windows_amd64_mingw平台httpfs扩展的版本(比如v1.1.2或最新稳定版v1.2.x):

  • 修改go.mod中github.com/marcboeker/go-duckdb的依赖版本,匹配目标DuckDB版本
  • 重新执行INSTALL s3; LOAD s3;命令

3. 强制适配rtools扩展(谨慎使用)

若必须使用v1.1.3,可尝试强制DuckDB识别当前平台为rtools:

  • 设置环境变量DUCKDB_PLATFORM=windows_amd64_rtools
  • 执行INSTALL s3; LOAD s3;命令
  • 注意:此方法可能引发兼容性问题,需充分测试运行稳定性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:22:41