Windows 10 使用Visual Studio编译PostgreSQL扩展plpgsql_check

参考地址:https://blog.2ndquadrant.com/compiling-postgresql-extensions-visual-studio-windows/

前言

本文记录了使用vs进行源码编译,编译的版本是x64位。

操作中心:windows 10

编译工具:vs2013

下载和安装

1、打开网址:https://pgxn.org/dist/plpgsql_check/0.9.3/,点击图标下载plpgsql_check插件源码。

2、下载安装Microsoft Visual C++ 2010(测试通过2010和2013,只装C++模块即可)

新建项目

1、新建一个C++的空项目,File  -> New -> Project...

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

将源码plpgsql_check.c拷贝进去,会出现一些错误,不要着急,后面慢慢修正。

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

我的路径是:D:\Program Files\PostgreSQL\10\include

项目配置

1、新增x64位程序配置。vs默认自带的是win32配置。选择Release,点击Configuration Manager...

选择Win32下拉框点击新增,选择x64位,点击确定。

右键项目名称 -> 点击Properties(属性),左上角的Configuration下拉框选择Release,选择x64位。

注:这里的名称可以自定义,在Configuration Manager里可以新增,不同的名字代表不同的项目配置。

2、选择Configuration Properties -> General, 设置“Configuration Type” to “Dynamic Library (.dll)”.

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

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

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

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

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

引入和库目录

现在需要添加所需的include目录。

1、Configuration Properties -> C/ C++ -> General -> Additional Include Directories,下拉文本框右侧的箭头并选择。现在,通过粘贴路径或选择文件夹,按照以下顺序在PostgreSQL安装目录中添加以下文件夹:

include\server\port\win32_msvc
include\server\port\win32
include\server
include

2、你还需要设置库的路径。选择 “Linker”->”General”, in Additional Library Directories.

3、解决源码高亮错误

这里有几处语法错误,其实与拷贝源码时,意外的将换行符拷贝进来了,我们打开源码看看

将这3个“\”移动到上一行即可。

点击“OK”。当返回源文件时,扩展文件上的错误高亮部分应该会消失。

打包构建

1、右键项目 -> Rebuild

fatal error C1083: Cannot open include file: 'unicode/ucol.h': No such file or directory

双击这一行错误,会打开pg_locale.h文件,发现里面有语法错误,不过这里确实是少包的,不过少的不是PG包。

需要安装IBM下的ICU包。传送门:http://site.icu-project.org/download/62

下载ICU4C Binary Download,不要下载源码,因为源码的文件很散,需要引入的文件夹很多。

解压后引入

2、重新构建。

发现报错缺少plpsql的包,引入plpsql.lib

plpgsql.lib文件,请看Windows 10 安装PostgreSQL 数据库 plpgsql_check扩展

3、再次构建。恭喜你成功了 

使用

1、打开成功目录的文件夹,将.dll文件重命名为plpgsql_check.dll文件

2、将plpgsql_check.dll文件拷贝到PostgreSQL\10\lib下。

好了,本文记录完毕。

猜你喜欢

转载自blog.csdn.net/w345731923/article/details/83058013