Компилируя расширение php с помощью Visual Studio 2008, идентификатор модуля не совпадает с php - PullRequest
3 голосов
/ 04 сентября 2010

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

http://blog.slickedit.com/2007/09/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

Ответы [ 3 ]

10 голосов
/ 04 сентября 2010

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

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

#define PHP_COMPILER_ID "VC9"

И это будет работать.


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

2 голосов
/ 05 сентября 2010

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

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

0 голосов
/ 09 июля 2011

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

...