Компиляция расширения php в dll

Последние несколько дней я пытался использовать расширение перегрузки операторов (pecl.php.net/package/operator), которое, по-видимому, недавно было обновлено для совместимости с 5.3 и 5.4.

Я пытался скомпилировать его в Windows (64-разрядная версия Windows 7), используя это руководство, с PHP 5.4 и Windows SDK 7.1 не повезло. Поэтому я попытался сделать это с PHP 5.3 и Windows SDK 6.1, и я могу успешно скомпилировать его с помощью конфигурации «configure --disable-all --enable-cli --enable-operator», а затем «nmake». Проблема в том, что он не создает файл dll для расширения оператора, вместо этого я получаю это, что, видимо, для меня бесполезно. Мне нужна dll, которую я могу использовать для своей локальной настройки WampServer.

У меня были фатальные ошибки при попытке использовать operator-0.4.1 с сайта pecl.php.net, поэтому вместо этого я скачал и скомпилировал из репозитория git (github.com/php/pecl-php-operator), что и создал файлы .obj, .idb и .sbr.


person user2400390    schedule 20.05.2013    source источник


Ответы (2)


Ты должен сделать

configure --disable-all --enable-cli --enable-operator=shared

в противном случае он статически скомпилирован.

В любом случае, если вы хотите использовать его с WampServer, двоичный файл, вероятно, не будет работать, потому что, если я не ошибаюсь, WampServer скомпилирован с библиотекой времени выполнения VC10 C, а руководство, на которое вы ссылаетесь, инструктирует вас использовать Visual Studio 2008 (которая поставляется с ВК9). Вам нужно будет использовать компилятор VC10 (я думаю, что он связан с Windows SDK 7.1, поэтому вы можете загрузить только его и пропустить Visual Studio).

person Artefacto    schedule 22.05.2013
comment
Я попробовал это для своего собственного расширения, но он все равно создает файл lib. Я использую PHP 7.3 и VC15. Как я могу создать DLL? - person arun; 03.03.2019

В корневой путь расширения и измените config.w32

EXTENSION('redis', sources); to EXTENSION('redis', sources,true);

buildconf --force

configure --enable-xx 

nmake

вы получите php-redis.dll

person Tom    schedule 07.03.2019