Компиляция расширения php с Visual Studio 2008, идентификатор MODULE не совпадает с php

После компиляции моего собственного расширения php с использованием VC9 (2008) и VC10 (2010), используя следующие шаги:

Creating a PHP 5 Extension with Visual C++ 2005

Я получаю следующую ошибку при инициализации 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 

Почему он не говорит, что я скомпилировал модуль с VC9 ?

Больше информации:

Операционная система: Windows7 x64 PHP: 5.3.3, TS, VC9

Хорошо, я нашел решение:

Вы должны добавить константу препроцессора в php-src / Zend / zend_build.h :

 #define PHP_COMPILER_ID "VC9" 

И это сработает.


Решение найдено здесь: http://forums.zend.com/viewtopic.php?f=55&t=2045

Официальная документация по созданию PHP и расширений находится в вики .

Вы должны создать файл config.w32 для своего расширения и создать его через командную строку. Это метод, который официально поддерживается.

И настоятельно рекомендуется использовать тот же CRT (VC9), что и сам php. Известны проблемы, когда смешанные ЭЛТ используются между apache, php или его расширениями.