Windows 10 安装PostgreSQL 数据库 plpgsql_check扩展(源码编译)

#参考URL#

GitCode - 全球开发者的开源社区,开源代码托管平台

Windows 10 Visual Studio编译PostgreSQL 数据库-plpgsql_check扩展插件_msvc编译postgresql插件-CSDN博客

Windows 10 安装PostgreSQL 数据库 plpgsql_check扩展(源码编译)_windows postgres extension-CSDN博客

#前言#

本文记录Window10 64下安装postgresSQL 12的plpgsql_check扩展,以及遇到的问题的解决方法。

#下载plpgsql_check扩展的源码#

URL:https://pgxn.org/dist/plpgsql_check/2.7.5/

 下载源码并解压

#安装数据库#

URL:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

#安装Visual studio#

URL:https://visualstudio.microsoft.com/zh-hans/downloads/

如果已经有visulstudio,却没有C++模块的,可以打开VisualStudio→tools→Get Tools And features,添加C++桌面开发。我这里用的是visual studio 2022社区版。

备注:用社区版的,源码会出现2处语法错误,用企业版的就不会报错。

#生成plpgsql.lib文件#

plpgsql_check依赖于plpgsql,我们需要添加plpgsql.lib。但是安装的Pg的lib文件夹没有对应lib文件。根据lib目录下的plpgsql.dll编译生成plpgsql.lib文件。

·打开visual studio→Tools→Command Line→Developer Command Prompt

·将pg的lib路径下的plpgsql.dll文件拷贝到新建的文件夹中。

  ※Program Files路径,会pumpbin不成功,因为文件夹名称中间含有空格。

·运行dumpbin命令来获得dll的所有导出函数的列表

dumpbin /EXPORTS C:\Users\mid1250\Downloads\plpg\plpgsql.dll

·创建plpgsql.def文件,将获取的所有名称(name)拷贝到plpgsql.def中,并在第一行添加固定值“EXPORTS”。

·生成lib文件

lib /DEF:C:\Users\mid1250\Downloads\plpg\plpgsql.def /MACHINE:x64 /out:C:\Users\mid1250\Downloads\plpg\plpgsql.lib

·将生成的plpgsql.lib文件复制到pg的lib目录下

#Windows 用Vs 进行源码编译plpgsql_check#

参考URL:Windows 10 Visual Studio编译PostgreSQL 数据库-plpgsql_check扩展插件_msvc编译postgresql插件-CSDN博客

1、创建空白c++工程。打开visual studio→File→New→Project

2、创建源文件。Source Files 右键 -> Add -> New Items...

※文件名要将.cpp变为.c,因为源代码是c语言

3、将源码plpgsql_check.c拷贝进去,会出现错误,后面慢慢修正。

4、将源码文件下plpgsql_check.h、plpgsql_check_builtins.h文件拷贝到pg下的include文件下

5、项目配置

   5-1、选择Release,设值成行x64。

右键项目名称 -> 点击Properties(属性),左上角的Configuration下拉框选择Release,选择x64位   5-2、选择Configuration Properties -> General, 设置“Configuration Type” to “Dynamic Library (.dll)”.

   5-3、选择C/C++ -> Preprocessor -> Preprocessor Definitions -> <Edit...>,添加指令WIN64

   5-4、选择 C/C++ -> Code Generation, 设置“Enable C++ Exceptions” to “No”。

   5-5、选择 C/C++ -> Advanced ,设置“Compile As” to “C Code”。

   5-6、选择 Linker -> Manifest File, 设置“Generate Manifest” to “No”.

   5-7、选择Linker -> Input -> Additional Dependencies,添加postgres.lib、plpgsql.lib到资源库列表中。

 5-8、引入和库目录。Configuration Properties -> C/ C++ -> General -> Additional Include Directories

 5-9、设置库的路径。选择 “Linker”->”General”, in Additional Library Directories。

6、打包构建 。右键项目 -> Rebuild

大概率会出现如下错误:

解决方法:把源码的其它.c的文件全部添加到工程进来

源码:

添加完如下的感觉:

再次编译,理论上应该就成功。

但是,如果你用的VS是社区版的,估计还会有以下BUG。ps:写邮件给做这个插件的作者,他说他不会报错

解决方法1:用花钱的正式版vs来bulid

解决方法2:把有问题的2个文件语法报错的地方注释掉。

解决完问题就再次编译成功啦

生成的dll文件在工程的如下路径

7、拷贝 plpgsql_check.dll 到 PostgreSQL\12\lib。 (12替换成自己的版本)

8、源码文件夹下,拷贝plpgsql_check.control和plpgsql_check--2.7.sql PostgreSQL\12\share\extension

完成了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值