尽管 PostgreSQL 是为 Unix 类操作系统写的, C 的客户端库(libpq)和交互终端(psql)还是可以在 Windows 本地编译. 在 Postgres 里包含的 makefiles 是为 Microsoft Visual C++ 写的,很可能在其他系统里无法使用。 在其他情况下手工编译这个库应该是可能的。
提示: 如果你使用的是 Windows 98 或更新的 Windows 那么你可以用"Unix 方法"制作和使用所有 PostgreSQL, 不过你要先安装 Cygwin 工具。 请参阅 Chapter 14。
要制作在Windows制作所有可能做的东西, 把目录改变到 src 目录,然后键入命令
nmake /f win32.mak
这里假设你的路径里有 Visual C++.
制作将生成下面的文件:
动态链接的前端库
你的程序和libpq.dll链接的输入库
前端库的静态库版本
Postgresql 交互的 SQL 终端
唯一需要安装的文件是 libpq.dll 库。这个文件在大多数情况下应该放在 WINNT\SYSTEM32 目录里(或者在 Windows 95/98/ME 系统的 WINDOWS\SYSTEM 目录里)。 如果此文件是用一个 setup 程序安装的,那么它应该在安装前用文件里的 VERSIONINFO 资源检查版本, 以确保现有新版本的库不会被覆盖。
如果你准备在这台机器上使用libpq进行开发,你要把 src\include 和 src\interfaces\libpq 目录加入到你的编译器设置的包含路径里。
要使用库,你必须把文件 libpqdll.lib增加到你的项目里( 在 Visual C++ 里, 只需要右键点击项目然后选择增加库)。
psql 是编译成一个"控制台应用"的。 因为 Windows 控制台窗口使用了与系统其它部分不同的编码,所以,你在 psql 的提示符里面使用 8 位的字符的时候必须采取特殊的步骤。如果 psql 检测到一个有问题的控制台代码页,那么它会在启动的时候警告你要修改控制台的代码页,必须干两件事:
通过输入 cmd.exe /c chcp 1252。(1252是适合德语的代码页;用你的数值替换它。) 如果你在使用 Cygwin,那么呢可以把这个命令放在 /etc/profile 里。
把控制台字体设置为 "Lucida Console",因为光栅字体不能和 ANSI 代码页兼容。