设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

Windows平台编译 PostgreSQL

2013-5-30 10:10| 发布者: 红黑魂| 查看: 1272| 评论: 0|原作者: 权宗亮|来自: 开源中国博客

摘要: 1、源代码下载与准备PG 词法和语法解析分别使用 flex 和 yacc脚本,也就是源代码里能看到的 .l 和 .y 文件,由他们生成 .c 和 .h文件。更详细资料见:http://flex.sourceforge.net/(很不幸,这个网站是无法直接访问 ...
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 文件需要手工拷贝,根据文件缺失错误提示从第二步的开发包目录中查找。

酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部