在Windows XP上从源代码构建PHP 5.2.2的问题[英] Issue with building PHP 5.2.2 from source on Windows XP

问题描述

我需要使用 pdo_ibm 扩展从源代码构建 PHP,我是
有问题.首先,我使用的是 Visual Studio .NET 2003
我正在通过 Visual Studio 命令从源代码构建 PHP
迅速的.当我进入 nmake 步骤时,它会经历所有事情,直到
它命中 zend_language_scanner.l 文件.然后我得到这些错误:

zend_language_scanner.l(24) : 警告 C4005: ''yyleng'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(12):见
以前的定义
''yyleng''的化合
zend_language_scanner.l(25) : 警告 C4005: ''yytext'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(16):见
以前的定义
''yytext''的化
zend_language_scanner.l(26) : 警告 C4005: ''yytext_ptr'' : 宏
重新定义
zend_language_scanner.c(289) : 见之前的定义
''yytext_ptr''
zend_language_scanner.l(27) : 警告 C4005: ''yyin'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(11):见
以前的定义
''yyin''的化合
zend_language_scanner.l(28) : 警告 C4005: ''yyout'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(14):见
以前的定义
''yyou''的化合
zend_language_scanner.c(3607) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
文件 *'' 到 ''zend_file_handle *''
zend_language_scanner.c(3610) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
文件 *'' 到 ''zend_file_handle *''
zend_language_scanner.c(5309) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
zend_file_handle *'' to ''FILE *''
zend_language_scanner.c(5429) : 错误 C2065: ''tsrm_ls'' : 未声明
标识符
zend_language_scanner.c(5522) : 警告 C4133: ''function'' :
不兼容的类型 -
从 ''zend_file_handle *'' 到 ''FILE *''
zend_language_scanner.c(5522) : 错误 C2039: ''_flag'' : 不是成员
''_zend
_file_handle''
c:\work\php-5.2.2\Zend\zend_stream.h(40) : 见
声明''_zend_fil
e_handle''
zend_language_scanner.c(5522) : 警告 C4133: ''function'' :
不兼容的类型 -
从 ''zend_file_handle *'' 到 ''FILE *''
zend_language_scanner.c(5522) : 错误 C2039: ''_flag'' : 不是成员
''_zend
_file_handle''
c:\work\php-5.2.2\Zend\zend_stream.h(40) : 见
声明''_zend_fil
e_handle''
zend_language_scanner.c(5794) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
文件 *'' 到 ''zend_file_handle *''
NMAKE : 致命错误 U1077: ''"cl.exe"'' : 返回码 ''0x2''
停下来.

如果您有任何建议,我将不胜感激.唯一的
我现在的选择是从源代码构建它.如果有人知道
它不能使用 Visual Studio .NET 2003 命令完成
提示,请告诉我.我的理解是可以的
使用此环境构建,但您永远不知道.提前感谢
大家可以提供的任何帮助.

作为参考,我将按照此处列出的说明进行操作:
http://us2.php.net/manual/en/install...s.building.new

我正在使用这个命令来配置 configure.js 文件:
cscript configure.js --with-extra-includes=c:\win32build\include;--
with-extra-libs=c:\win32build\lib;--enable-debug --disable-cgi --
enable-cli --with-pdo-ibm="C:\SQLLIB",共享
-- treble54

推荐答案

6 月 4 日上午 10:35,treble54 我需要使用 pdo_ibm 扩展从源代码构建 PHP,我是
有问题.首先,我使用的是 Visual Studio .NET 2003
我正在通过 Visual Studio 命令从源代码构建 PHP
迅速的.当我进入 nmake 步骤时,它会经历所有事情,直到
它命中 zend_language_scanner.l 文件.然后我得到这些错误:

zend_language_scanner.l(24) : 警告 C4005: ''yyleng'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(12):见
以前的定义
''yyleng''的化合
zend_language_scanner.l(25) : 警告 C4005: ''yytext'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(16):见
以前的定义
''yytext''的化
zend_language_scanner.l(26) : 警告 C4005: ''yytext_ptr'' : 宏
重新定义
zend_language_scanner.c(289) : 见之前的定义
''yytext_ptr''
zend_language_scanner.l(27) : 警告 C4005: ''yyin'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(11):见
以前的定义
''yyin''的化合
zend_language_scanner.l(28) : 警告 C4005: ''yyout'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(14):见
以前的定义
''yyou''的化合
zend_language_scanner.c(3607) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
文件 *'' 到 ''zend_file_handle *''
zend_language_scanner.c(3610) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
文件 *'' 到 ''zend_file_handle *''
zend_language_scanner.c(5309) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
zend_file_handle *'' to ''FILE *''
zend_language_scanner.c(5429) : 错误 C2065: ''tsrm_ls'' : 未声明
标识符
zend_language_scanner.c(5522) : 警告 C4133: ''function'' :
不兼容的类型 -
从 ''zend_file_handle *'' 到 ''FILE *''
zend_language_scanner.c(5522) : 错误 C2039: ''_flag'' : 不是成员
''_zend
_file_handle''
c:\work\php-5.2.2\Zend\zend_stream.h(40) : 见
声明''_zend_fil
e_handle''
zend_language_scanner.c(5522) : 警告 C4133: ''function'' :
不兼容的类型 -
从 ''zend_file_handle *'' 到 ''FILE *''
zend_language_scanner.c(5522) : 错误 C2039: ''_flag'' : 不是成员
''_zend
_file_handle''
c:\work\php-5.2.2\Zend\zend_stream.h(40) : 见
声明''_zend_fil
e_handle''
zend_language_scanner.c(5794) : 警告 C4133: ''='' : 不兼容
类型 - 来自 ''
文件 *'' 到 ''zend_file_handle *''
NMAKE : 致命错误 U1077: ''"cl.exe"'' : 返回码 ''0x2''
停下来.

如果您有任何建议,我将不胜感激.唯一的
我现在的选择是从源代码构建它.如果有人知道
它不能使用 Visual Studio .NET 2003 命令完成
提示,请告诉我.我的理解是可以的
使用此环境构建,但您永远不知道.提前感谢
大家可以提供的任何帮助.

作为参考,我将按照此处列出的说明进行操作:http://us2.php.net/manual/en/install...hp#install.win...

我正在使用这个命令来配置 configure.js 文件:
cscript configure.js --with-extra-includes=c:\win32build\include;--
with-extra-libs=c:\win32build\lib;--enable-debug --disable-cgi --
enable-cli --with-pdo-ibm="C:\SQLLIB",共享

-- 高音54
我想我会添加一些关于我所做的事情的信息.我有
能够通过输入
克服上面列出的三个错误Visual Studio 命令提示符处的此命令:
flex.exe -i -SZend/flex.skl -Pzend -oZend/zend_language_scanner.c Zend/
zend_language_scanner.l

我在 makefile 中找到了这一行,但它有
(FLEX) (FLEX = flex.exe)
而不是 flex.exe.

接下来我要做的是将 libxml2 和 iconv 添加到 \ext
目录.现在我得到这个作为输出:

php_xmlwriter.c
rc/fo Debug_TS\php5ts_debug.dll.res/d
FILE_DESCRIPTION="\"PHP 脚本 I
解释器\""/d FILE_NAME="\"php5ts_debug.dll\""/d
PRODUCT_NAME="\"PHP 脚本
口译员""/IDebug_TS/d MC_INCLUDE="\"Debug_TS\wsyslog.rc\""
win32\build
\template.rc
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
_libiconv_versi

php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
压缩绑定
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
放气绑定
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
deflatePrime
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
gzclearerr
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
gzungetc
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
充气后退
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
膨胀后端
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
inflateBackInit
_
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
膨胀复制
php5ts_debug.dll.def : 错误 LNK2001: 无法解析的外部符号
zlibCompileFlag
s
Debug_TS\php5ts_debug.lib : 致命错误 LNK1120: 11 unresolved
外在
LINK : 致命错误 LNK1141: 导出文件构建失败
NMAKE : 致命错误 U1077: ''"C:\Program Files\Microsoft Visual
Studio .NET 2003\
VC7\BIN\cl.exe"'':返回码''0x2''
停下来.

我以前从未处理过什么外部符号,我希望
有人可能有一些他们可以提供给我的信息.我的
第一个想法是Makefile可能有问题,因为我是
提醒链接问题与我看到未解决的外部符号但我
我不确定.

再次感谢你们提供的任何帮助.欢迎发邮件
如果您不想在这里发帖,我也会在 tr******@gmail.com 上发帖.

-- treble54


treble54 写道:
6 月 4 日上午 10:35,treble54 >我需要使用 pdo_ibm 扩展从源代码构建 PHP,但我
遇到了问题.首先,我使用的是 Visual Studio .NET 2003
,我正在通过 Visual Studio 命令
提示从源代码构建 PHP.当我进入 nmake 步骤时,它会遍历所有内容,直到
它到达 zend_language_scanner.l 文件.然后我得到这些错误:

zend_language_scanner.l(24) : 警告 C4005: ''yyleng'' : 宏
重定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(12) : 参见
之前的定义
''yyleng''
zend_language_scanner.l(25) : 警告 C4005: ''yytext'' : 宏
重定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(16) : 见
以前的定义
''yytext''
zend_language_scanner.l(26) : 警告 C4005: ''yytext_ptr'' : 宏
重新定义
zend_language_scanner.c(289) : 见之前的定义
''yytext_ptr''
zend_language_scanner.l(27) : 警告 C4005: ''yyin'' : 宏
重定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(11) : 见
以前的定义
''yyin''
zend_language_scanner.l(28) : 警告 C4005: ''yyout'' : 宏
重新定义
c:\work\php-5.2.2\Zend\zend_language_scanner.c(14) : 见
上一个定义
tion of ''yyout''
zend_language_scanner.c(3607) : 警告 C4133: ''='' : 不兼容
类型 - 从 ''
FILE *'' 到 ''zend_file_handle *''
zend_language_scanner.c(3610) : 警告 C4133: ''='' : 不兼容
类型 - 从 ''
FILE *'' 到 ''zend_file_handle *''
zend_language_scanner.c(5309) : 警告 C4133: ''='' : 不兼容
类型 - 从 ''
zend_file_handle *'' 到 ''FILE *''
zend_language_scanner.c(5429) : 错误 C2065: ''tsrm_ls'' : 未声明
标识符
zend_language_scanner.c(5522) : 警告 C4133: ''function'' :
不兼容的类型 -
来自''zend_file_handle *'' 到 ''FILE *''
zend_language_scanner.c(5522) : 错误 C2039: ''_flag'' : 不是成员
''_zend
_file_handle''
c:\work\php-5.2.2\Zend\zend_stream.h(40) : 见
''_zend_fil
e_handle''
zend_language_scanner.c 的声明(5522) : 警告 C4133: ''function'' :
不兼容的类型 -
从 ''zend_file_handle *'' 到''FILE *''
zend_language_scanner.c(5522) : 错误 C2039: ''_flag'' : 不是''_zend
_file_handle''的成员
c:\work\php-5.2.2\Zend\zend_stream.h(40) : 见声明
''_zend_fil
e_handle''
zend_language_scanner.c(5794) : 警告 C4133:''='' : 不兼容
类型 - 从 ''
FILE *'' 到 ''zend_file_handle *''
NMAKE : 致命错误 U1077: ''"cl.exe"'' : return code ''0x2''
停止.

如果您有任何建议,我将不胜感激.我现在唯一的
选项是从源代码构建它.如果有人知道
不能使用 Visual Studio .NET 2003 命令
提示,请告诉我.据我了解,它可以
使用此环境构建,但您永远不知道.提前感谢
大家可以提供的任何帮助.

作为参考,我将按照此处列出的说明进行操作:http://us2.php.net/manual/en/install...hp#install.win...

我正在使用这个命令来配置configure.js文件:
cscript configure.js --with-extra-includes=c:\win32build\包括;--
with-extra-libs=c:\win32build\lib;--enable-debug --disable-cgi --
enable-cli --with-pdo-ibm="C:\SQLLIB",shared

-- treble54

我想我会添加一些关于我所做的事情的信息.我有
能够通过输入
克服上面列出的三个错误Visual Studio 命令提示符处的此命令:
flex.exe -i -SZend/flex.skl -Pzend -oZend/zend_language_scanner.c Zend/
zend_language_scanner.l

我在 makefile 中找到了这一行,但它有

本文地址:https://www.itbaoku.cn/post/1050561.html