windows下编译postgresql源码

        本文主要是对postgreSQL数据库在windows下进行编译,使用vs2005进行编译。

        1.环境

         windows764位,旗舰版,postgreSQL8.4.10,其他版本没有试过,按照下序步骤应该也是可以的。

        2.需要的软件

        需要的软件比较多,也比较复杂,按照官方文档上下载就可以。http://www.postgresql.org/docs/8.4/interactive/install-win32-full.html官方网站中的“Requirements“。 对于这些所需要的软件中,需要说明的是tcl,perl,python,这些开始下载的是x64位的,结果不行。然后都统一使用的是x86版本,最好统 一,要么是64位要么是x86。不然会提示许多函数找不到,即类库中函数不一致问题。还有一个软件iconv官方文档上没有说明,但是还是需要的。需要下 一个windows版本,我使用的是libiconv-1.9.1.bin.woe32。(这个文件我找了很久才弄好)。其他软件按照要求来即可,还有ActiveState TCL,官方文档上指定说明需要8.4,我也按照要求来了。(Required for building PL/TCL (Note: version 8.4 is required, the freeStandard Distribution is sufficient).

        3配置文件

        config.pl文件中需要软件的一些参数:

       tcl=>'c:\tcl',        #--with-tls=<path>
        perl=>'c:\perl',            # --with-perl
        python=>'C:\Python27', #--with-python=<path>
        krb5=>'C:\MIT\Kerberos', #--with-krb5=<path>
        ldap=>1,           # --with-ldap
        openssl=>'C:\OpenSSL-Win32', #--with-ssl=<path>
        uuid=>'F:\postgre_depend\uuid-1.6.2\pgsql',#--with-ossp-uuid
       xml=>'F:\postgre_depend\libxml2-2.7.8.win32',
       xslt=>'F:\postgre_depend\libxslt-1.1.26.win32',
       iconv=>'F:\postgre_depend\libiconv-1.9.1.bin.woe32',
       zlib=>'F:\postgre_depend\zlib125-dll'#--with-zlib=<path>

       按照其他帖子分析,新建了一个新的pl文件,buildenv.pl。

       内容如下:

      $ENV{PATH}=$ENV{PATH}.';C:\GnuWin32\bin;C:\GnuWin32;C:\GnuWin32\include;F:\postgre_depend\bin';

       gnuwin32主要是一些工具,如bison,diff,flex等的安装目录,配置可以参照http://www.php100.com/html/itnews/PHPxinwen/2009/0929/3357.html。但会发现有些是在config.pl中出现的,可能是postgreSQL的版本不一样。

       4 编译

        使用vs2005的命令提示窗口,这个作用主要是配置vs2005版本的一些环境变量。删除contrib中的uuid-XXXX和fuzzystrmatch两个文件夹,然后进入到到postgreSQL源码的目录postgresql-8.4.10\src\tools\msvc,运行perl build.pl或者perl build.pl DEBUG,两者的区别在于一个是release版本一个是debug版本。在运行时发现还出现vs版本不匹配或者找不到现象,主要是因为我使用的vs是 中文版,会提示哪个文件错误了,并且会打印出错误代码,只要在那个文件中找到出错行,该文件是perl脚本,只要把那个判断语句中的变量打印出来,然后条 件写成与该变量一样就可以,(不好意思,忘记是哪个文件了)。如果是英文版本,应该不会有该问题。

      5 问题

      问题1,如果perl、tcl和python版本不一样,可能出现plperl.vcproj、plpython.vcproj问题,也即这些依赖的函数都找不到。

      问题2,vs版本问题,英文版本或中文版问题。如果是英文版本,记得使用vs的命令窗口进入。如果是中文版本,还记得需要更改perl脚本中的一个条件表达式。

      其他问题,如果还有什么文件找不到之类的,看看是不是该软件的版本问题。

      6 继续

      编译完之后,sln文件会生成个好,如果想使用vs2005工具编译,则打开项目即可。

    

     还可以参照http://www.cnblogs.com/tjdx415/archive/2010/01/19/1651414.html里面讲述的

      

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值