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

如何用Meson编译PostgreSQL 17仅生成静态库libpq.lib?

如何在Windows上通过Meson编译纯静态的libpq.lib(PostgreSQL 17.x)

尽管PostgreSQL上游代码强制同时生成静态库与共享库,且开发方暂不支持仅编译静态库的官方选项,你仍可以通过以下两种方式获取不依赖DLL的纯静态libpq库:

方法1:直接使用编译后生成的静态库

PostgreSQL在Windows下用Meson编译时,当library: 'both'生效,会同时生成两类库文件:

  • libpq.lib:对应libpq.dll的导入库,依赖动态库运行
  • libpq_static.lib:纯静态库,不依赖任何DLL

你可以直接在构建目录的src/interfaces/libpq路径下找到libpq_static.lib,这个就是你需要的纯静态库,无需额外修改配置。

方法2:修改libpq的Meson配置文件强制仅生成静态库

如果需要直接生成名为libpq.lib的纯静态库,可以修改PostgreSQL源码中的src/interfaces/libpq/meson.build文件:
找到定义pq库的代码段(对应你提到的第65行附近),将其中的library: 'both'修改为library: 'static',保存后重新执行编译流程:

meson setup --default-library=static build
ninja -C build

编译完成后,构建目录下只会生成纯静态的libpq.lib,不会再出现libpq.dll和对应的导入库。

静态链接注意事项

使用静态libpq时,需要确保链接所有依赖的静态库(如libpgport.lib、libpgcommon.lib)以及Windows系统库(如ws2_32.lib、secur32.lib),具体依赖可参考PostgreSQL官方文档中的静态链接说明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:05:02