[pgsql-jp: 28878] Re: コンパイルエラー

HOTTA Michihide hotta @ net-newbie.com
2003年 1月 31日 (金) 14:58:59 JST


堀田@諫早市です。

手元の VineSeed 環境(gcc バージョン 3.2.2 20030126 (prerelease))
でも同様の現象になりますね。

ちょっと調べてみましたが、やっぱり私が最初にご指摘した、

On Thu, 30 Jan 2003 15:11:00 +0900
HOTTA Michihide <hotta @ net-newbie.com> wrote:

> 警告: 複数行文字列リテラルは推奨されません

(原文) warning: multi-line string literals are deprecated

が根本原因みたいです。このエラー文字列でぐぐってみてください。
たくさんの事例が見つかると思います。

gcc-3.x で、この複数行にわたる文字列定数の書式が廃止されたため、
configure スクリプト中のチェックで、必要なヘッダフィルのほとんど
が「見つかりません」と判定されて、たとえば

> pqcomm.c: 関数 `StreamConnection' 内:
> pqcomm.c:413: `TCP_NODELAY' が宣言されていません (この関数内で最初に利用)

とかいうエラーになるのだと思います。この旧式の文法も容認するよう
なオプションは見つけられませんでした。この制限を回避するようなパ
ッチも、私程度のレベルでは作れそうにないです。configure の中で、
警告をエラーとしないようにするだけでよいものかどうか…。

[対策] ...どうしても 7.1.2 on RH8 の環境を作りたければ

1.gcc-3.2 用に、ご自分でがんばって postgresql-7.1.2 のソースを改
  造する。RH7.x の SRPM あたりが参考になるのかもしれません。
2.RH8 用の gcc-2.x を(なければ自分で作って)インストールし、これ
  で postgresql-7.1.2 をビルドする。

くらいしか思い当たりません。やっぱり

3.別のマシン上の postgresql-7.1.3 からデータを移行し、7.3.1 で
  運用する。

のが簡単なような気がします。
-- 
HOTTA Michihide <hotta @ net-newbie.com> <http://www.net-newbie.com>



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