加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VS编译以及调试 PostgreSQL 源码工程

发布时间:2020-12-13 17:49:58 所属栏目:百科 来源:网络整理
导读:本文转自:coanor 由于工作原因,需要调试PG的源码。 google之,尚无全策,自捣鼓之,遂成。 (注:以下均为Windows平台,并且suppose你的VS2005已经安装,且设置了VS2005的环境变量:) 下载PG源代码(我下载的是8.4.1版本)、Bison(2.2版本以上或1.85版本)、Fle

本文转自:coanor


由于工作原因,需要调试PG的源码。
google之,尚无全策,自捣鼓之,遂成。
(注:以下均为Windows平台,并且suppose你的VS2005已经安装,且设置了VS2005的环境变量:)

下载PG源代码(我下载的是8.4.1版本)、Bison(2.2版本以上或1.85版本)、Flex(单一的.exe文件)、Perl(ActivePerl,需安装)等,自google之。
『1』解压,假设为D:Postgresql
『2』系统环境变量设置:
a)在C:WINDOWSMicrosoft.NETFrameworkv2.0.50727下找到MSbuild.exe这个程序,并将C:WINDOWSMicrosoft.NETFrameworkv2.0.50727设置为系统的path环境变量。
b)将Flex、Bison、Perl的物理路径设置为系统path环境变量(假设Bison、Flex目录为D:)
『3』在PG的源码中,注释掉..postgresqlcontribfuzzystrmatchdmetaphone.c中的几个case,具体位置为464行一个,1040行有一个,在编辑器上显示为『case '?』,一看便知是少了半边『'』,但在这里,显示『?』是因为编辑器遇到了一个拉丁字符,无法显示才冒出一个问号,我们简单的将这两个case分支注释掉即可——毕竟我们只需要调试器代码,并不需要用VS编译一个出来自己用,实际上,PG的windows版本并不是VS家族编译出来的。
『4』在D:postgresqlsrcbackendmain中的main.c中,注释掉第157行,即检查root的那行,便于调试使用。
『5』进入D:postgresqlsrctoolsmsvc目录,打开config.pl文件,注释掉除perl以外的其它行,并将perl的路径设置为你当前perl的安装目录。
『6』进入命令行,CD到D:postgresqlsrctoolsmsvc目录下,运行『perl build.pl DEBUG』,等着吧,在我机器上编译了00:09:01.96,若在当中遇到警告,别理它。
『7』在D:postgresql下新建一个bin目录,然后在D:postgresqlsrctoolsmsvc目录下运行『perl install.pl ..postgresqlbin』,这一步的目的是将各地编译的成果拷贝到新建的那个bin目录下。
『8』在D:postgresqlbinbin目录下,运行『initdb.exe --no-locale u_db_name』,u_db_name为你自己定义的数据库名,命令执行完后,在D:postgresqlbinbin会生成一个u_db_name的文件夹。
『9』打开postgresql目录下的pgsql.sln文件,在主工程(postgres)的设置中:
将Configuration Properties/debugging/Command的值设置为D:postgresqlbinbinpostgres.exe
将Configuration Properties/debugging/Command Directory设置为--single -D u_db_name postgres
将Configuration Properties/debugging/Working directory设置为D:postgresqlbinbin
保存设置。
『10』按下F10吧,到了这一步,你就可以加入更多新的调试选项来猥亵PG的源码啦.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读