[PHP-users 10520] Build PHP-3.0.18 on WindowsNT4.0

Jun Nobe php-users@php.gr.jp
Thu, 03 Oct 2002 18:45:44 +0900


野邊と申します。

現在、Windows NT4.0にて
APACHE2.0.40+PHP3.0.17+ORACLE8.1.5という組合せでDB開発しています。

ご存知かもしれませんが、PHP3にはセキュリティホールがあり、これを避ける
ためにPHP4を使いたいのですが、こちらはORACLE8.1.5とのアクセス関数に
不都合があり、やはり使えません。(ORACLE8.1.7以上なら良いらしい)

そこで、PHP3にセキュリティパッチが出ているのでそれを当ててビルドする
ということをしているのですが、ビルドエラーを解決できずにおります。

お知恵を拝借できないでしょうか。

php-3.0.18.tar.gz
に対して、
mime.c.diff-3.0.gz
のパッチをCYGWINのPATCHコマンドで当てています。

CYGWINでのmakeもこけますが、VC++6.0も最後のリンクで以下のエラーを吐きます。

尚、インストール法は
  http://php3.de/manual/ja/print/install.windows.php
を参照にしています。
PHP4のソースは上記でうまくビルドできました。。。。

以下はVC++のエラー内容
=======================================
コンパイル中...
parsedate.tab.c
リンク中...
language-parser.tab.obj : error LNK2005: _yyparse はすでに
 configuration-parser.tab.obj で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: __isctype はすでに 
LIBCMT.lib(isctype.obj) で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: __errno はすでに LIBCMT.lib(dosmap.obj) 
で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _sprintf はすでに LIBCMT.lib(sprintf.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _strncpy はすでに LIBCMT.lib(strncpy.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fclose はすでに LIBCMT.lib(fclose.obj) 
で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fgets はすでに LIBCMT.lib(fgets.obj) で
定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fopen はすでに LIBCMT.lib(fopen.obj) で
定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _getenv はすでに LIBCMT.lib(getenv.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _strchr はすでに LIBCMT.lib(strchr.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _strpbrk はすでに LIBCMT.lib(strpbrk.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _strncmp はすでに LIBCMT.lib(strncmp.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _atoi はすでに LIBCMT.lib(atox.obj) で定
義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: _malloc はすでに LIBCMT.lib(malloc.obj)
 で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: __stricmp はすでに 
LIBCMT.lib(stricmp.obj) で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: __close はすでに LIBCMT.lib(close.obj) 
で定義されています
MSVCRT.lib(MSVCRT.dll) : error LNK2005: __getpid はすでに LIBCMT.lib(getpid.obj) 
で定義されています
language-parser.tab.obj : warning LNK4006: _yyparse は 
configuration-parser.tab.obj で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __isctype は LIBCMT.lib(isctype.obj) 
で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __errno は LIBCMT.lib(dosmap.obj) で
定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _sprintf は LIBCMT.lib(sprintf.obj) 
で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _strncpy は LIBCMT.lib(strncpy.obj) 
で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fclose は LIBCMT.lib(fclose.obj) で
定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fgets は LIBCMT.lib(fgets.obj) で定義
されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _fopen は LIBCMT.lib(fopen.obj) で定義
されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _getenv は LIBCMT.lib(getenv.obj) で定
義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _strchr は LIBCMT.lib(strchr.obj) で
定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _strpbrk は LIBCMT.lib(strpbrk.obj)
 で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _strncmp は LIBCMT.lib(strncmp.obj)
 で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _atoi は LIBCMT.lib(atox.obj) で定義
されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: _malloc は LIBCMT.lib(malloc.obj) で
定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __stricmp は LIBCMT.lib(stricmp.obj)
 で定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __close は LIBCMT.lib(close.obj) で
定義されています; 2 つ目以降の定義は無視されます
MSVCRT.lib(MSVCRT.dll) : warning LNK4006: __getpid は LIBCMT.lib(getpid.obj) 
で定義されています; 2 つ目以降の定義は無視されます
   ライブラリ cgi_release/php.lib とオブジェクト cgi_release/php.exp を作成中
LINK : warning LNK4098: defaultlib "MSVCRT" は他のライブラリの使用と競合して
います; /NODEFAULTLIB:library を使用してください
configuration-parser.tab.obj : error LNK2001: 外部シンボル "_yylex" は未解決です
language-parser.tab.obj : error LNK2001: 外部シンボル "_yylex" は未解決です
language-parser.tab.obj : error LNK2001: 外部シンボル "_yyerror" は未解決です
language-parser.tab.obj : error LNK2001: 外部シンボル "_phpparse" は未解決です
main.obj : error LNK2001: 外部シンボル "_phpparse" は未解決です
cgi_release/php.exe : fatal error LNK1120: 外部参照 3 が未解決です。
link.exe の実行エラー

php.exe - エラー 23、警告 18