Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Namazuのコンパイルと日本語/英語
- From: "Yuichiro Sawatari" <sawatari@xxxxxxxxx>
- Date: Mon, 26 Apr 2004 18:12:02 +0900
- X-ml-name: namazu-win32-users-ja
- X-mail-count: 02139
猿渡です。
引用順序を変えました。
> はい。ActivePerl のパスが先に来るよう環境変数を修正してください。
修正しました。
$ perl -v
This is perl, v5.6.1 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
> 編集後、make clean を実行し、make し直してください。
> それで、やっとコンパイルが通るでしょう。
perl を変更したので、configure からやり直しました。
$ export MINGW32=yes
$ export CYGWIN=yes
$ ./configure --prefix=/namazu --with-libintl-prefix=/mingw
(途中省略)
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing default commands
$ vi libtool
(行末が \\\\ で終わっている3箇所を削除)
$ make clean
(途中省略)
Making clean in .
make[1]: Entering directory `/c/namazu-2.0.13'
rm -rf .libs _libs
rm -f *.lo
make[1]: Leaving directory `/c/namazu-2.0.13'
$ make
(途中省略)
Making all in src
make[2]: Entering directory `/c/namazu-2.0.13/src'
/bin/sh ../libtool --mode=link gcc -g -O2 -Wall -pedantic -o namazu.exe
form.o namazu.o output.o rcfile.o result.o usage.o
namazu-cmd.o -L/mingw/lib -lintl -liconv ../nmz/libnmz.la ../lib/libnmzut.a
extracting exported symbol list from `libintl-2.dll'
test -f .libs/impgen.c || sed -e "/^# \/\* impgen\.c starts here \*\//,/^#
\/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < ../libtool >
.libs/impgen.c
test -f .libs/impgen.exe || (cd .libs && if test "x" != "x" ; then -o
impgen impgen.c ; else gcc -o impgen impgen.c ; fi)
c:/mingw/bin/../lib/gcc-lib/mingw32/2.95.3-6/../../../libmingw32.a(main.o)(.
text+0x8d):main.c: undefined reference to `WinMain@16'
make[2]: *** [namazu.exe] Error 1
make[2]: Leaving directory `/c/namazu-2.0.13/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/namazu-2.0.13'
make: *** [all] Error 2
あと少しだと思うのですが・・・。
実は、最初、perl を ActivePerl に設定せずに \\\\ を削除して、
make clean, make, make install してしまったのですが、その結果は以下のように
なりました。
$ make clean
(途中省略)
Making clean in .
make[1]: Entering directory `/c/namazu-2.0.13'
rm -rf .libs _libs
rm -f *.lo
make[1]: Leaving directory `/c/namazu-2.0.13'
$ make
(途中省略)
Making all in contrib
make[2]: Entering directory `/c/namazu-2.0.13/contrib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/c/namazu-2.0.13/contrib'
make[2]: Entering directory `/c/namazu-2.0.13'
make[2]: Leaving directory `/c/namazu-2.0.13'
make[1]: Leaving directory `/c/namazu-2.0.13'
$ make install
(途中省略)
/bin/sh ./mkinstalldirs /namazu/share/namazu/etc
/bin/install -c -m 644 AUTHORS /namazu/share/namazu/etc/AUTHORS
/bin/install -c -m 644 ChangeLog /namazu/share/namazu/etc/ChangeLog
/bin/install -c -m 644 ChangeLog.1 /namazu/share/namazu/etc/ChangeLog.1
/bin/install -c -m 644 CREDITS /namazu/share/namazu/etc/CREDITS
/bin/install -c -m 644 COPYING /namazu/share/namazu/etc/COPYING
/bin/install -c -m 644 INSTALL /namazu/share/namazu/etc/INSTALL
/bin/install -c -m 644 INSTALL-ja /namazu/share/namazu/etc/INSTALL-ja
/bin/install -c -m 644 README /namazu/share/namazu/etc/README
/bin/install -c -m 644 README-es /namazu/share/namazu/etc/README-es
/bin/install -c -m 644 README-ja /namazu/share/namazu/etc/README-ja
/bin/install -c -m 644 NEWS /namazu/share/namazu/etc/NEWS
/bin/install -c -m 644 THANKS /namazu/share/namazu/etc/THANKS
/bin/install -c -m 644 TODO /namazu/share/namazu/etc/TODO
/bin/install -c -m 644 HACKING /namazu/share/namazu/etc/HACKING
/bin/install -c -m 644 HACKING-ja /namazu/share/namazu/etc/HACKING-ja
make[2]: Leaving directory `/c/namazu-2.0.13'
make[1]: Leaving directory `/c/namazu-2.0.13'
$ objdump -p /namazu/libexec/namazu.cgi.exe | grep DLL
DLL Name: libintl-2.dll
DLL Name: KERNEL32.dll
DLL Name: msvcrt.dll
DLL Name: msvcrt.dll
DLL Name: USER32.dll
> とすれば、libintl-2.dll, KERNEL32.dll, msvcrt.dll, USER32.dll 等
> が表示されるはずです。(この時、cygwin1.dll は表示されないのが
> 正解です。)
のとおりになったので、「やった!」と思ったのですが、
/namazu/libexec/namazu.cgi.exe と /mingw/bin/libintl-2.dll を
C:\Inetpub\Scripts\search にコピーして、
IIS で実行すると、以下のエラーが出ました。
http://sawatari01/Scripts/search/namazu.cgi.exe?/
CGI Error
The specified CGI application misbehaved by not returning a complete
set of HTTP headers. The headers it did return are:
/namazu/bin/namazu.exe は以下のように動いています。
$ /namazu/bin/namazu.exe --help
namazu 2.0.13, Namazu の検索プログラム
これは、ActivePerl を用いなかったのが原因でしょうか?