[pgsql-jp: 37963] Windows でのコンパイル(MinGW+MSYS)がエラーになります

Katsuhiko Okano k_okano @ po.ntts.co.jp
2007年 1月 25日 (木) 09:27:56 JST


岡野と申します。

勉強のために、Windows上でMinGWとMSYSを使ってPostgreSQL8.2.1をソースから
コンパイルしようとしたのですが、
./configure 後の make で、以下のメッセージが出てコンパイルできません。

エラーメッセージにある、gettimeofdayに関係ありそうなWEBページを見たのですが、
解決方法がわかりませんでした。
http://lists.gnupg.org/pipermail/gnupg-devel/2006-June/022984.html
http://lists.gnupg.org/pipermail/gnupg-devel/2006-November/023371.html

どなたかwindowsでコンパイルした方がいらっしゃいましたら手順を教えていただけな
いでしょうか。
Visual Studioが必要なら買ってきます。


[環境]
OS:Windows2000 
gcc:3.4.2 (mingw-special)
アーキテクチャ:IA-32
MinGW:5.1.1
MSYS:1.0.11_2004.04.30-1
mingw-runtime:3.11
(PostgreSQLのBuildFarmにあるbandicootサーバに似た構成です)
http://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=bandicoot&br=HEAD
postgresqlは8.2.1のソースを本家ページからダウンロードしました。


--- configure時とmake時のメッセージ ---

$ ./configure --enable-cassert --enable-debug
(略)
config.status: linking ./src/include/port/win32.h to src/include/pg_config_os.
h
config.status: linking ./src/makefiles/Makefile.win32 to src/Makefile.port
config.status: executing check_win32_symlinks commands

okano @ localhost /c/postgresql-8.2.1
$ make
make -C doc all
make[1]: Entering directory `/c/postgresql-8.2.1/doc'
(略)
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration-
after-statement -Wendif-labels -fno-strict-aliasing -g -I../../src/port -
DFRONTEND -I../../src/include -I./src/include/port/win32 -DEXEC_BACKEND  "-I..
/../src/include/port/win32"  -c -o getrusage.o getrusage.c
In file included from ../../src/include/rusagestub.h:17,
                 from getrusage.c:18:
e:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/sys/time.h:27: error:
 redefinition of `struct timezone'
e:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/sys/time.h:40: error:
 conflicting types for 'gettimeofday'
../../src/include/port.h:292: error: previous declaration of 'gettimeofday' 
was here
e:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/sys/time.h:40: error:
 conflicting types for 'gettimeofday'
../../src/include/port.h:292: error: previous declaration of 'gettimeofday' 
was here
make[2]: *** [getrusage.o] Error 1
make[2]: Leaving directory `/c/postgresql-8.2.1/src/port'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/c/postgresql-8.2.1/src'
make: *** [all] Error 2

okano @ localhost /c/postgresql-8.2.1
$ gcc --version
gcc.exe (GCC) 3.4.2 (mingw-special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


okano @ localhost /c/postgresql-8.2.1
$ uname -m
i686

okano @ localhost /c/postgresql-8.2.1
$ uname -r
1.0.11(0.46/3/2)

okano @ localhost /c/postgresql-8.2.1
$ uname -s
MINGW32_NT-5.0

okano @ localhost /c/postgresql-8.2.1
$ 
---
----------------------------------------
Katsuhiko Okano
k_okano at po.ntts.co.jp
NTT Sofrware Corp. (division "NBRO-PT4")



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