[英]Compiling a php extension with Visual Studio 2008, MODULE ID don't match with php
[英]Compiling my own PHP extension on Windows with Visual Studio 2008
我写了一个PHP扩展,它可以在linux下成功编译和运行。 但在Windows上,我遇到了一些问题。
我根据http://blog.slickedit.com/?p=128使用PHP源版本5.2.10对Windows进行了编译,并在编译之后生成了dll文件。 但是当我尝试使用dll文件时,它报告了启动Apache(Wamp服务器)时的内存问题。 然后我开始调试过程,似乎REGISTER_INI_ENTRIES()有问题。
这是PHP扩展源代码, http://www.bluefly.cn/xsplit.tar.gz ,它在Linux上运行良好。 但我也想让它在Windows上运行。
对不起,我不是专业人士,所以我希望有人可以帮助我。
任何帮助表示赞赏,并提前感谢〜
Wamp是使用VC6编译的,它需要使用VC6编译模块。
报告Romain Bourdon(WampServer的作者)的话:因为Apache是用VC6编译的,如果要将PHP作为模块运行(如在WampServer中),则必须使用VC6编译模块。
如果要使用更新的平台编译模块,则必须编译整个PHP-CGI分发并将其作为(快速)CGI运行。
如果您可以阅读法语(或者如果您确实知道如何使用翻译),您可以阅读这篇文章 。
您在Linux上没有看到问题的原因很可能是您在Windows上进行线程安全构建,而不是在Linux上进行。 尝试在Linux上添加--enable-maintainer-zts
,然后使用valgrind检查( USE_ZEND_ALLOC=0 valgrind /usr/bin/php script.php
)
从快速浏览你的代码我发现你没有定义你的php_xsplit_init_globals
初始化线程变量。 必须通过添加a来从MINIT
注册Tis功能
ZEND_INIT_MODULE_GLOBALS(xsplit, php_yplist_init_globals, NULL);
呼叫。 也许别的东西是错的,但那是我看到的第一件事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.