bison windows php,Windows平台编译 PostgreSQL

1、源代码下载与准备

PG 词法和语法解析分别使用 flex 和 yacc脚本,也就是源代码里能看到的 .l 和 .y 文件,由他们生成 .c 和 .h文件。

更详细资料见:

http://flex.sourceforge.net/(很不幸,这个网站是无法直接访问的,自己想办法)

http://www.gnu.org/software/bison/

这两个工具在 Windows 下的环境一直没有彻底弄好,再加上考虑它们的版本,我都是在 Linux 下生成语法引擎,操作步骤见 (2)。

参考资料:《lex与yacc》机械工业出版社

(1) 下载打包好的包,这种方式的好处是不需用 flex和bison

下载地址:

国际社区

http://www.postgresql.org/ftp/source/

国内镜像

ftp://www.highgo.com.cn/pub/mirrors/pgsql/source/

进入第二步,不需要在 Linux 生成任何文件。

(2) clone社区 git 代码库,需要:git flex bison

关于git,它是一个强大到一套糊涂的代码管理工具,请自行了解使用方法,官方网站:

http://git-scm.com/(仍然很不幸,自己想办法)

Windows下可以安装 Cygwin,选装 git 和 openssh,在 Cygwin 环境下使用 git。

官方网站:http://www.cygwin.com

需要注意的是,编译开关要一致,以下 a-e 步骤需要在 Linux 下执行。

a). 克隆代码库

git clone

http://git.postgresql.org/git/postgresql.git

b). 配置编译参数,可能需要安装一些开发包,根据错误提示安装即可

./configure --prefix=/usr/local/pg93b1 \

--enable-nls="zh_CN zh_TW" \

--without-perl \

--without-python \

--without-tcl \

--without-gssapi \

--without-krb5 \

--without-pam \

--without-ldap \

--without-bonjour \

--with-openssl \

--with-libxml --with-libxslt \

--enable-thread-safety \

--with-zlib \

--without-selinux

c). 编译内核

make

d). 编译外围模组

cd contrib & make

cd ..

e). 编译隔离测试脚本

cd src/test/isolation & make

f). 将如下文件拷贝至 Windows 下源代码的相同位置

src\backend\bootstrap\bootparse.c

src\backend\bootstrap\bootscanner.c

src\backend\parser\gram.c

src\backend\parser\gram.h

src\backend\parser\scan.c

src\backend\replication\repl_gram.c

src\backend\replication\repl_scanner.c

src\backend\utils\misc\guc-file.c

src\bin\psql\psqlscan.c

contrib\cube\cubeparse.c

contrib\cube\cubescan.c

contrib\seg\segparse.c

contrib\seg\segscan.c

src\interfaces\ecpg\preproc\pgc.c

src\interfaces\ecpg\preproc\preproc.c

src\interfaces\ecpg\preproc\preproc.h

src\pl\plpgsql\src\pl_gram.c

src\pl\plpgsql\src\pl_gram.h

src\test\isolation\specparse.c

src\test\isolation\specscanner.c

2、Windows 开发包的下载与准备

Windows下编译 PostgreSQL 所需开发包列表见文档 16.1.1. Requirements

http://slproweb.com/products/Win32OpenSSL.html

下载 OpenSSL,这里很全。

ftp://ftp.zlatkovic.com/libxml/

这里也有 openssl,但版本较老。

从这里下载可以下载到 iconv、libxml2、libxslt、zlib,推荐使用

http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/

这里下载 gettext

文档提及的

http://gnuwin32.sourceforge.net/ 上的包更新已经远远落后于 gnu,但仍然可用。

将下载的包解压到 c:\pgbuild 目录

3、微软VC 下载,express版对我们来说足够,还是免费授权。

http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products

安装完毕后,建议打好所有补丁。

4、修改 src\tools\msvc\config_default.pl,指向我们下载到的开发包

nls => "C:\\pgbuild\\gettext"

openssl => "C:\\pgbuild\\OpenSSL"

xml => "C:\\pgbuild\\libxml2"

xslt => "C:\\pgbuild\\libxslt"

iconv => "C:\\pgbuild\\iconv"

zlib => "C:\\pgbuild\\zlib"

6、下载 ActivePerl 并安装

http://www.activestate.com/activeperl

7、打开 程序菜单 ”Microsoft Visual Studio 2010“ -> ”Visual Studio Tools“ -> ”Visual Studio Command Prompt (2010)“

如果是其他版本,注意是 32位的那个,没有把握可以看它的属性,vcvarsall.bat 后边有参数 x86。

set path=%path%;C:\pgbuild\iconv\bin;

set path=%path%C:\ActivePerl-5.12.x\bin;

set path=%path%C:\pgbuild\gettext\bin;

进入 PostgreSQL 源代码 src\tools\msvc 运行 build.bat

编译完毕后运行: install.bat

8、至此编译完成,但是有些 dll 文件需要手工拷贝,根据文件缺失错误提示从第二步的开发包目录中查找。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值