簡體   English   中英

使用Visual Studio 2008在Windows上編譯我自己的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM