[pgsql-jp: 39045] Re: WIN32 でのlibpq 生成でエラー

陶山 泰 postgrml @ suyama.net
2007年 12月 29日 (土) 16:33:21 JST


陶山です。

 VisualC++6.0 をインストールし、 libpq を作成しようとしましたが、うま
く作成できませんでした。
 ソースを見たり、ネットで調べたり、いろいろと試行錯誤した結果、以下の
やり方で libpq.dll を作成することができました。
 psql コマンドで、ネットで接続された他サーバのDBを覗くことができま
したので、libpq.dll はきちんと動作できていると判断しました。

 VisualC++6.0 をインストールしただけでは、不足するリソースがたくさんあ
り、それらは、マイクロソフトのサイトからダウンロードすることで解決しま
した。

 具体的には、 Microsoft Platform SDK 
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
のページから
PSDK-x86.exe をダウンロードしてインストール(PSDK-x86.exe を実行)します。

 するとC:\Program Files\Microsoft Platform SDK\Lib 内に shfolder.lib が
作成されます。これを lib 環境変数に登録しておきます。
 
C:\Program Files\Microsoft Platform SDK\Include ディレクトリ全部を
C:\Program Files\Microsoft Visual Studio\VC98\ へコピーします。
念のためあらかじめC:\Program Files\Microsoft Visual Studio\VC98\Include 
をバックアップしておきました。

include 環境変数に
C:\Program Files\Microsoft Visual Studio\VC98\include\crt を追加して
おきます。

 これらの準備が整ったら、postgresql の src ディレクトリで
nmake /f win32.mak
を実行します。

 これで、
interfaces\libpq\Release\libpq.dll
interfaces\libpq\Release\libpqdll.lib
interfaces\libpq\Release\libpq.lib

bin\psql\Release\psql.exe
等が作成できました。

 bin\psql\Release\ に、libpq.dll をコピーしておいて
psql -h hostname -p portnumber -l 
でデータベースが見えることを確認しました。
 (SELECT 文もやってみました)

 この方法が正しいかどうかはわかりませんが、とりあえず動作するので、
OKとしました。

-------------------------
WindowsXP SP2
Visual Studio 6.0 Enterprise Edition
PostgreSQL 8.1.9
-------------------------




pgsql-jp メーリングリストの案内