http://blog.csdn.net/adrastos/article/details/9093739

1.

下载PostgreSQL的源代码。解压。

2.

在Windows平台下编译需要跳过一个权限的检测,否则在编译的时候可能会出现错误。

在\src\backend\main\main.c文件中将  check_root(progname);  注释掉。

3.

在\src\tools\msvc\Mkvcbuild.pm文件中将  my $vsVersion = DetermineVisualStudioVersion();  改为 my $vsVersion =  '12.00';  否则build时会报错不能确定版本。

4.

打开Visual Studio自带的“开发人员命令提示”。(路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts)

切换到源代码目录的\src\tools\msvc。输入命令build(若要编译debug版,则输入build debug),将会自动编译,编译需要一定的时间,稍微等一下。编译结果是0 Error(s)即可。

编译后会在PostgreSQL源代码目录下生成大量文件,找到pgsql.sln文件,双击即可运行Visual Studio并加载该解决方案。

如果用普通的cmd进行编译,会报错“cl command not found at src/tools/msvc/Solution.pm line 80.”。

5. 安装

用Win+R打开cmd窗口,切换到\src\tools\msvc文件夹,执行命令“install 目标目录”,“目标目录”是数据库将要安装的地址,用户自行选定。

例:D:\postgresql-9.6.0\src\tools\msvc>install E:\pg_install

运行该命令后会提示Installation complete。这时已用编译好的PostgreSQL安装成功,在目标目录中将会出现如下目录:

6. 初始化

切换到目标目录的bin文件夹下,执行命令“initdb 数据库目录”。

例:

初始化后如下图所示:

7. 启动服务器

“E:\pg_install\bin>postgres -D E:\pg_data”

“E:\pg_install\bin>pg_ctl -D E:\pg_data -l logfile start”

8.

为了能够调试安装好PostgreSQL,需要在VS中配置一下,右键postgres工程,点击属性,如下图所示:

配置属性 -> 调试:

其中,命令(Command):要绑定PostgreSQL的postgres.exe。命令参数(Command Arguments):-D 数据库目录(注意D要大写,否则有时候可能会报错)。工作目录(Working Directory):数据库目录。

9. 创建数据库

切换到数据库目录的bin文件夹下,并执行命令“E:\pg_install\bin>createdb mydb”。

这时打开VS,找到菜单栏中“工具 -> 附加到进程”选项。看到现在应该是有6个postgres.exe的进程,注意记录一下这六个进程的ID。

执行命令“psql 刚刚创建的数据库名称(mydb)”,则进入刚刚创建的数据库中。

这时再看VS的“附加到进程”中应该有7个postgres.exe的进程和一个psql.exe的进程。

然后attach之前没有出现过的postgres.exe进程(通常为第一个)。

10. 添加断点

在postgres工程的postgres.c文件中搜索“simple”,找到一个switch语句。因为postgres.c是psql命令的入口地方,所以在这里加断点之后,在客户端执行命令操作的时候就会被VS捕捉到,就可以追代码了。

例:在psql中输入“\d”。执行后会调到VS中设断点的位置。

windows安装postgres源代码的更多相关文章

  1. 最详细在Windows安装Xamarin.iOS教程

    最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...

  2. ApiGen4.1 windows安装教程

    一. ApiGen4.1版本介绍 1.ApiGen介绍 ApiGen是自动生成PHP项目的阅读文档工具. 用于从PHP源代码创建专业的API文档,类似于phpDocumentor/phpDoc. Ap ...

  3. Windows安装PostgreSQL11.1

    Windows安装PostgreSQL11.1 安装过程如下: 1.下载安装包postgresql-11.1-1-windows-x64.exe 2.点击下一步 3.选择安装位置,默认路径C:\Pro ...

  4. Windows安装Jekyll

    Run Jekyll on Windows 夹 Jekyll介绍 安装Ruby 安装DevKit 安装Jekyll 安装Python 安装pip 执行Jekyll Introduction Jekyl ...

  5. windows安装解压版postgresql

    1.postgresql解压版下载 2.将下载的postgresql-12.1-1-windows-x64-binaries.zip解压 data文件夹后面初始化数据库时手动创建的 3.初始化数据库 ...

  6. windows 安装Git详解

    windows 安装Git详解 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...

  7. Windows安装face_recognition库

    写在前面: 在pip官网搜face_recognition https://pypi.org/project/face_recognition/ 介绍中可看出该包更适合在Linux系统中使用,但也附上 ...

  8. Mysql(windows)安装

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  9. Windows 安装JRuby 生成 war 到 tomcat 运行

    Windows安装JRuby Rails 直接下载 JRuby,不装 Ruby. http://jruby.org/download 该安装包可以配好环境变量 %JRUBY_HOME% 等 安装 bu ...

随机推荐

  1. Custom work flow

    http://runjs.cn/detail/99epj1t2 http://www.cqroad.cn/ https://jsplumbtoolkit.com/demo/flowchart/dom. ...

  2. Mysql索引的类型和优缺点

    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢.每修改数据 ...

  3. python:轮播图

    下载jquery.bxslider 参考地址:www.bxslider.com 引入jquery.bxslider.css和jquery.bxslider.js <!DOCTYPE HTML P ...

  4. 开发客户端软件时,出现System.Windows.Markup.XamlParseException错误

    开发客户端软件时,出现System.Windows.Markup.XamlParseException错误,通过查看错误消息,发现TCPIP的一个COM组件在安装软件过程中被删除了,重新注册了一下TC ...

  5. solr 4.6的安装配置

    从网上看了很多资料,很多都是老的.自己也算是结合着弄出来了. 1.下载的准备工作 tomcat8.solr4.6   具体的下载自己去找去吧.或者后期我在提供. 2.开始配置 tomcat路径:E:\ ...

  6. ProcessBuilder 、Runtime和Process 的区别

    1.版本原因 ProcessBuilder是从java1.5加进来的,而exec系列方法是从1.0开始就有的,后续版本不断的重载这个方法,到了1.5已经有6个之多. 2.ProcessBuilder. ...

  7. [译]使用JMH进行微基准测试:不要猜,要测试!

    英文原文:Micro Benchmarking with JMH: Measure, don't guess!翻译地址:使用JMH进行微基准测试:不要猜,要测试!原文作者:Antonio翻译作者:Ho ...

  8. docker私有库UI和添加私有库到本机能够push和pull

    $ docker run -p 8080:8080 -e REG1=http://104.236.246.10:5000/v1/ atcol/docker-registry-ui$ docker ru ...

  9. 在Linux中查看所有正在运行的进程

    可以使用ps命令.它能显示当前运行中进程的相关信息,包括进程的PID.Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息. ps命令能提供一份当前进程的快照.如果想状态可以自动刷新,可以 ...

  10. linux运行级别

    也许大家偶然会发现/sbin里有个init命令.你知道它是如何使用的吗? 如果你不喜欢使用图形登录方式,如何能够让用户在控制台下运行startx命令呢? 有时你要维护服务器,暂时不希望别的用户登录系统 ...