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

执行go get拉取geos包时提示geos_c.h不存在编译报错如何解决

报错原因
$ go get github.com/paulsmith/gogeos/geos
# github.com/paulsmith/gogeos/geos
In file included from ../../go/pkg/mod/github.com/paulsmith/gogeos@v0.1.2/geos/coordseq.go:4:
./geos.h:1:10: fatal error: geos_c.h: No such file or directory
    1 | #include <geos_c.h>
      |          ^~~~~~~~~~
compilation terminated.

上述错误是因为github.com/paulsmith/gogeos/geos属于GEOS几何引擎的Go绑定,编译依赖系统层面的GEOS C语言开发库,你仅安装了Go语言环境依赖,未安装该系统级依赖导致头文件缺失。

解决步骤
  • 第一步:安装对应操作系统的GEOS开发包

    Debian/Ubuntu 系列
    sudo apt update && sudo apt install libgeos-dev

    RHEL/CentOS/Fedora 系列
    sudo dnf install geos-devel

    macOS(Homebrew环境)
    brew install geos

    Windows(Chocolatey环境)
    choco install geos
    若Windows未使用Chocolatey,可直接下载GEOS预编译开发包,解压到本地目录备用。

  • 第二步:验证GEOS安装状态
    执行命令geos-config --version,正常输出版本号即为安装成功。
  • 第三步:重新拉取依赖
    再次执行go get github.com/paulsmith/gogeos/geos即可完成编译拉取。
异常排查

若安装后仍报错,可检查以下两项配置:

  • 确认CGO已开启:执行go env CGO_ENABLED确认输出为1,若为0执行go env -w CGO_ENABLED=1开启,Windows环境需提前安装MinGW GCC编译套件。
  • Windows手动安装GEOS的场景,需要手动指定头文件和库路径执行拉取命令,示例如下:
    CGO_CFLAGS="-IC:\geos\include" CGO_LDFLAGS="-LC:\geos\lib" go get github.com/paulsmith/gogeos/geos
    请将路径替换为你本地GEOS解压后的对应目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 17:39:03