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
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
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.
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