问题
After compiling my own php extension using VC9 (2008) and VC10 (2010) using the next steps:
http://blog.slickedit.com/2007/09/creating-a-php-5-extension-with-visual-c-2005/
I get the next error when initializing php:
PHP Warning: PHP Startup: FirstPHPExt Module: Unable to initialize module
Module compiled with build ID=API20090626,TS
PHP compiled with build ID=API20090626,TS,VC9
These options need to match
in Unknown on line 0
Why it doesn't says that I compiled the module with VC9?
More info:
Operating System: Windows7 x64 PHP: 5.3.3,TS,VC9
回答1:
Ok, I found the solution:
You must add a preprocessor constant into php-src/Zend/zend_build.h:
#define PHP_COMPILER_ID "VC9"
And it will work.
Solution found here: http://forums.zend.com/viewtopic.php?f=55&t=2045
回答2:
The official documentation for building PHP and extensions is in the wiki.
You should create a config.w32
file to your extension and build it through the command line. That's the method that's officially supported.
回答3:
And it is strongly recommended to use the same CRT (VC9) than php itself. There are known issues when mixed CRTs are used between apache, php or its extensions.
来源:https://stackoverflow.com/questions/3641751/compiling-a-php-extension-with-visual-studio-2008-module-id-dont-match-with-ph