PHP 5.4.7编译分机php_printer(PHP 5.4.7 Compiling ext p

2019-08-19 04:28发布

我的知识库是,我可以在PHP得到解决。 我从来没有使用C,C ++,C#或任何编译器的工作。

我从XAMPP 1.7.3,其中采用php 5.3到1.8.1其包括升级:阿帕奇2.4.3的MySQL 5.5.27 PHP 5.4.7

它被安装在Windows 7专业版的Windows XP专业版和Windows Server 2008 R2。 但我想它获得在Windows 7目前的工作。

我升级了,因为我需要Apache和MySQL的出于安全原因,一个新的版本。 我没有选择降级。

我用的是php_printer.dll用于打印的原始数据到打印机的能力:

printer_set_option($handle, PRINTER_MODE, "RAW");

我的代码在PHP 5.3工作得很好,但在PHP 5.4破门。

收到错误后:“致命错误:调用()在〜printer_open未定义功能”。 我检查了php_error_log并收到以下信息。

PHP Warning: PHP Startup: printer: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20100525
These options need to match

我已经看了好几个小时试图找到一个预编译php_printer.dll为PHP 5.4.7无济于事。 我的结论是,我将不得不从PECL源文件编译它。 pecl.php.net/package/printer

有从来没有这样做之前,我没有任何互联网用户应该做的事情。 我GOOGLE了它,并在这里发现了一些信息: https://wiki.php.net/internals/windows/stepbystepbuild

我花了一整天,但PHP构建工作。 但随后试图首先我试图创建php_printer.dll:

svn co http://svn.php.net/repository/pecl/printer/trunk pecl/printer

但它表示:使用“svn”不被识别为一个内部或外部的命令,可操作的程序或批处理文件。

于是我就从下载的文件自己:svn.php.net/repository/pecl/printer/trunk/并把它们放在:C:\ PHP-SDK \ php54dev \ VC9 \ 86 \ php5.4-201303311430 \分机\打印机

我确信下载库都来自:windows.php.net/downloads/php-sdk/deps/vc9/x86/也只是:DEPS-5.4-VC9-x86.7z

我想一个那么其他的,但是, 每次我收到了以下,当我试图执行nmake时间:

c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

printer.c
ext\printer\printer.c(266) : error C2065: 'pval' : undeclared identifier

UPDATE

我在另一个论坛一些帮助。


通过hackattack142»03. 2013 23:51四月

你好,

打开“printer.c”,代之以“的zval” PVAL“的所有实例,它应该编译。


谢谢Hackattack,一步步接近我希望,

c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>buildconf
~
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>configure --disable-all --enable-cli 
--enable-printer
~
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake

Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

internal_functions.c
printer.c
   Creating library Release_TS\php5ts.lib and object Release_TS\php5ts.exp
   Creating library Release_TS\php.lib and object Release_TS\php.exp
SAPI sapi\cli build complete

它似乎编译。 然而; 我无法找到一个printer.dll或php_printer.dll这是我所期待的结果。

Release_TS \ ext文件夹中有名为打印机的文件夹。 它包含以下文件:printer.obj printer.sbr vc90.idb

我也做了最后一步:

c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>cd Release_TS
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430\Release_TS>php -m
[PHP Modules]
Core
date
ereg
pcre
printer
Reflection
SPL
standard
[Zend Modules]
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430\Release_TS>

从另一个论坛帮助

configure --disable-all --enable-cli --enable-printer=shared

它的工作和我创建了php_printer.dll然而,当我试图使用它:

在PHP错误日志:[15-APR-2013 15时34分53秒UTC] PHP的警告:PHP启动:无效库(可能不是一个PHP库)在未知 'php_printer.dll' 在线0


我只好抓住5.4.7的文件,因为我是用5.4.15但XAMPP 1.8.1使用5.4.7

http://www.oldapps.com/php_programming_language.php?old_php=8227

并把它放在:C:\ PHP-SDK \ php54dev \ VC9 \ 86 \ PHP-5.4.7

然后把打印机文件在ext文件夹,并做了所有上述过程和:

配置--enable打印机=共享

和它的工作:

PHP版本5.4.7 php_printer.dll

http://pylonx.com/PHP/php_printer_5.4.7.zip

Answer 1:

下载并安装你喜欢PHP的任何版本,在这里安装相应的PHP打印机DLL: http://windows.php.net/downloads/pecl/snaps/printer/0.1.0-dev/



Answer 2:

这是一个在5.4.7到PHP 5.4.11的版本中的错误。



Answer 3:

如果您可以使用XAMPP 1.6.8版本,这将解决这些问题。 它有PHP 5.2.6也php_printer.dll文件已在PHP文件夹保存在ext文件夹。 所以你只需要取消注释在php.ini文件中的延长线= php_printer.dll它注意到在PHP信息页上的“加载的配置文件”部分的路径。 你可以找到该版本xamppfrom oldapps.com的



文章来源: PHP 5.4.7 Compiling ext php_printer