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

在Windows环境下用C扩展扩展PostgreSQL的PostGIS插件

问题解答

liblwgeom.h在PostGIS 3.3.2源码中的位置

liblwgeom.h直接存在于PostGIS 3.3.2源码的src/liblwgeom/目录下,并非编译后才生成——你找不到它大概率是因为没将该目录正确添加到Visual Studio的头文件搜索路径,或是下载的源码包不完整。

Windows环境编译PostGIS的指南与建议

1. 优先用预编译包(省去自行编译的繁琐)

直接下载对应PostgreSQL版本的PostGIS官方Windows预编译安装包,安装后在PostGIS的安装目录(通常是PostgreSQL/[版本号]/share/contrib/postgis-3.3/类路径)下,能找到include/liblwgeom文件夹,里面包含所有所需头文件(含liblwgeom.h),同时lib目录有编译好的库文件。直接把这些路径添加到你的VS项目依赖即可,无需自行编译PostGIS。

2. 若必须自行编译PostGIS的步骤

  • 依赖准备:提前安装带开发文件(头文件+库)的PostgreSQL,以及GDAL、GEOS、PROJ这几个核心依赖。推荐用OSGeo4W套件安装,它会自动配置依赖的路径与环境变量。
  • CMake生成VS项目:
    • 解压PostGIS 3.3.2源码,在根目录新建build文件夹
    • 打开对应版本的Visual Studio开发者命令提示符(如VS2019 x64提示符),切换到build目录
    • 执行CMake命令配置项目(替换为你的实际路径):
      cmake .. -G "Visual Studio 16 2019" -A x64 ^
      -DCMAKE_INSTALL_PREFIX="C:/Program Files/PostgreSQL/14/postgis" ^
      -DPG_CONFIG="C:/Program Files/PostgreSQL/14/bin/pg_config.exe" ^
      -DGEOS_CONFIG="C:/OSGeo4W64/bin/geos-config.bat" ^
      -DPROJ_INCLUDE_DIR="C:/OSGeo4W64/include" ^
      -DPROJ_LIBRARY="C:/OSGeo4W64/lib/proj.lib" ^
      -DGDAL_INCLUDE_DIR="C:/OSGeo4W64/include" ^
      -DGDAL_LIBRARY="C:/OSGeo4W64/lib/gdal_i.lib"
      
    • 打开生成的PostGIS.sln,编译INSTALL目标,完成后会将头文件、库文件安装到指定前缀目录。
  • 项目配置:把编译生成的PostGIS include和lib目录添加到你的VS项目的头文件搜索路径与库链接路径,同时链接liblwgeom.lib、postgis.lib以及PostgreSQL的postgres.lib。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:53:24