Namazu-win32-users-ja(旧)


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

「-mno-cygwin」なnamazuコンパイルが効かないのですが・・・



 常々参考にさせて頂いております。
 namazuをカスタマイズする必要が生じ、はじめてnamazuのコンパイルにチャレンジしている者です。
 Cygwinでの-mno-cygwin指定コンパイルでhello.exeができ正しく実行されるところまでは確認できているのですが、
namazuのwin32 nativeなバイナリを構築する途上で、ダウンロードした無修正ソースのコンパイルに手間取っております。

 Cygwin等の環境・Cygwin版gccでのコンパイル結果・MinGW版gccでのコンパイル結果を付記しておきます。
 不足情報がございましたらご指摘下さい。

 ご教授の程よろしくお願い致します。


0.実現したいこと
  ■win32 nativeなバイナリの構築
  ■できない場合、cygwin関連dllを使うバイナリでもよいが、その実行環境の構築

1.Cygwin等の環境(on win98SE)
(1)CygwinのVersion
   1.3.17-1(Cygwin SetupのSelect Packagesで表示されるcygwinのCurrentの内容)
(2)perlのVersion
   $ perl -v
   This is perl, v5.6.1 built for MSWin32-x86-multi-thread
   (with 1 registered patch, see perl -V for more detail)
(3)namazuのVersion
   C:\>namazu -v
   namazu of Namazu 2.0.12
(4)gccのVersion
   $ gcc -v
   Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.2/specs
   Configured with: /netrel/src/gcc-3.2-3/configure --enable-languages=c,c++,f77,ja
   va --enable-libgcj --enable-threads=posix --with-system-zlib --enable-nls --with
   out-included-gettext --enable-interpreter --disable-sjlj-exceptions --disable-ve
   rsion-specific-runtime-libs --enable-shared --build=i686-pc-linux --host=i686-pc
   -cygwin --target=i686-pc-cygwin --enable-haifa --prefix=/usr --exec-prefix=/usr
   --sysconfdir=/etc --libdir=/usr/lib --includedir=/nonexistent/include --libexecd
   ir=/usr/sbin
   Thread model: posix
   gcc version 3.2 20020927 (prerelease)

2.Cygwinでの-mno-cygwin指定コンパイル
  $ gcc -c -mno-cygwin hello.c
  $ gcc -o hello -mno-cygwin hello.o

 【確認内容】
  $ cygcheck c:\\cygwin\\home\\itachi\\hello\\hello.exe
  c:\cygwin\home\itachi\hello\hello.exe
    C:\WINDOWS\SYSTEM\msvcrt.dll
      C:\WINDOWS\SYSTEM\KERNEL32.dll

3.Cygwin版gccでのコンパイル
  $ CC="gcc -mno-cygwin" ./configure --prefix=/namazu
  $ make
  $ make install

 【現象】
  ・namazu.exeはできるがnamazu.cgi.exeができない。
  ・-mno-cygwinが効かない。

 【確認内容】
  ・使用dllの確認
   $ cygcheck c:\\namazu\\bin\\namazu.exe
   c:\namazu\bin\namazu.exe
     c:\namazu\bin\cygwin1.dll
       C:\WINDOWS\SYSTEM\KERNEL32.dll
     c:\namazu\bin\cygintl-2.dll
       c:\namazu\bin\cygiconv-2.dll
  ・namazu.exeの実行(dllをcygwin\bin\から当該ディレクトリにコピー)
   C:\> namazu "Namazu を初めて使う"
   README.TXT通りの結果が表示される

4.MinGW版gccでのコンパイル
  $ CFLAGS=-O2 LIBS=-lintl ./configure --host=i386-mingw32 --prefix=/namazu
  $ make
  $ make install

 【現象】
  ・namazu.exe、namazu.cgi.exeともにできる。
  ・namazu.cgi.exeで環境変数要求がでる。

 【確認内容】
  ・使用dllの確認
   $ cygcheck c:\\namazu\\bin\\namazu.exe
   c:\namazu\bin\namazu.exe
     c:\namazu\bin\cygwin1.dll
       C:\WINDOWS\SYSTEM\KERNEL32.dll
     c:\namazu\bin\cygintl-2.dll
       c:\namazu\bin\cygiconv-2.dll
  ・namazu.exeの実行(dllをcygwin\bin\から当該ディレクトリにコピー)
   C:\> namazu "Namazu を初めて使う"
   README.TXT通りの結果が表示される
  ・namazu.cgi.exeの実行(dllをcygwin\bin\から当該ディレクトリにコピー)
   C:\>c:\namazu\libexec\namazu.cgi.exe
   namazu of Namazu 2.0.12
   Copyright (C) 1997-1999 Satoru Takabayashi All rights reserved.
   Copyright (C) 2000,2001 Namazu Project All rights reserved.
   This is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty
   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   namazu: environment variable QUERY_STRING and SCRIPT_NAME are required

---