Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Namazuのコンパイルと日本語/英語



猿渡です。
引用順序を変えました。

> はい。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 を用いなかったのが原因でしょうか?