Windows平台编译 PostgreSQL
1、源代码下载与准备 PG 词法和语法解析分别使用 flex 和 yacc脚本,也就是源代码里能看到的 .l 和 .y 文件,由他们生成 .c 和 .
1、源代码下载与准备
PG 词法和语法解析分别使用 flex 和 yacc脚本,也就是源代码里能看到的 .l 和 .y 文件,由他们生成 .c 和 .h文件。
更详细资料见:
(很不幸,这个网站是无法直接访问的,自己想办法)
这两个工具在 Windows 下的环境一直没有彻底弄好,再加上考虑它们的版本,我都是在 Linux 下生成语法引擎,操作步骤见 (2)。
参考资料:《lex与yacc》机械工业出版社
(1) 下载打包好的包,这种方式的好处是不需用 flex和bison
下载地址:
国际社区
国内镜像 ftp://www.highgo.com.cn/pub/mirrors/pgsql/source/
进入第二步,不需要在 Linux 生成任何文件。
(2) clone社区 git 代码库,需要:git flex bison
关于git,它是一个强大到一套糊涂的代码管理工具,请自行了解使用方法,官方网站:
(仍然很不幸,自己想办法)
Windows下可以安装 Cygwin,选装 git 和 openssh,在 Cygwin 环境下使用 git。
官方网站:
需要注意的是,编译开关要一致,以下 a-e 步骤需要在 Linux 下执行。
a). 克隆代码库
git clone
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
下载 OpenSSL,这里很全。
ftp://ftp.zlatkovic.com/libxml/
这里也有 openssl,但版本较老。
从这里下载可以下载到 iconv、libxml2、libxslt、zlib,推荐使用
这里下载 gettext
文档提及的 上的包更新已经远远落后于 gnu,但仍然可用。
将下载的包解压到 c:\pgbuild 目录
3、微软VC 下载,express版对我们来说足够,还是免费授权。
安装完毕后,建议打好所有补丁。
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 并安装
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 文件需要手工拷贝,,根据文件缺失错误提示从第二步的开发包目录中查找。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL與PostgreSQL:效能比較與最佳化技巧在開發web應用程式時,資料庫是不可或缺的組成部分。而在選擇資料庫管理系統時,MySQL和PostgreSQL是兩個常見的選擇。他們都是開源的關係型資料庫管理系統(RDBMS),但在效能和最佳化方面有一些不同之處。本文將比較MySQL和PostgreSQL的效能,並提供一些最佳化技巧。性能對比在比較兩個資料庫管

MySQL和PostgreSQL:在Web開發中的最佳實務引言:在現代的Web開發領域中,資料庫是不可或缺的組成部分。在選擇資料庫時,常見的選擇是MySQL和PostgreSQL。本文將介紹在Web開發中使用MySQL和PostgreSQL的最佳實踐,並提供一些程式碼範例。一、適用場景MySQL適用於大多數Web應用程序,特別是那些需要高性能、可擴展性和易於使

學習Go語言中的資料庫函數並實作PostgreSQL資料的增刪改查操作在現代的軟體開發中,資料庫是不可或缺的一部分。 Go語言作為一門強大的程式語言,提供了豐富的資料庫操作函數和工具包,可以輕鬆實現資料庫的增刪改查操作。本文將介紹如何學習Go語言中的資料庫函數,並使用PostgreSQL資料庫進行實際的操作。第一步:安裝資料庫驅動程式在Go語言中,每個資料庫

MySQL與PostgreSQL:資料安全與備份策略引言:在現代社會中,資料成為了企業和個人生活中不可或缺的一部分。對於資料庫管理系統來說,資料安全與備份策略是至關重要的,既能保護資料免受遺失或損壞,也能確保恢復資料的可靠性和完整性。本文將重點放在MySQL和PostgreSQL兩種主流關係型資料庫系統的資料安全性和備份策略。一、資料安全性方面:(一)用戶權

隨著資料庫技術的發展,資料庫管理系統也呈現出多種多樣的選擇,開發人員可以根據自己的需求和喜好選擇最適合自己的資料庫。而PostgreSQL作為一種先進的開源關係型資料庫系統,越來越受到開發人員的關注與使用。那麼,在PHP程式設計中如何使用PostgreSQL資料庫呢?一、安裝和設定PostgreSQL資料庫在使用PostgreSQL之前,需要先安裝並設定它。首先

Go語言是一種快速、有效率的程式語言,適合建立Web服務和後端應用程式。而PostgreSQL是一個開源的關聯式資料庫管理系統,承諾提供更高的可靠性、可擴展性和資料安全性。在本文中,我們將深入探討如何在Go語言中使用PostgreSQL,並提供一些實用的程式碼範例和技巧。安裝和設定PostgreSQL首先,我們需要安裝和設定PostgreSQL。可以在官方網

MySQL和PostgreSQL:如何優化資料庫查詢效能?概述:在開發應用程式時,資料庫查詢效能是一個重要的考慮因素。良好的查詢效能可以提高應用程式的回應速度和使用者體驗。本文將介紹一些最佳化資料庫查詢效能的方法,重點涵蓋MySQL和PostgreSQL兩種常用資料庫。資料庫索引的最佳化:資料庫索引是提高查詢效能的重要因素。索引可以加快資料的查找速度,減少查詢時掃

資料庫容量規劃與擴展:MySQLvs.PostgreSQL引言:隨著網際網路的快速發展和大數據時代的到來,資料庫的容量規劃和擴展變得越來越重要。 MySQL和PostgreSQL是兩個流行的關聯式資料庫管理系統(RDBMS),它們在資料庫容量規劃和擴充方面有著不同的特性和適用場景。本文將對這兩個資料庫進行比較,並給出一些程式碼範例來展示它們的差異。一、MySQ
