Ошибка компиляции phpurple - php 5.3 - PullRequest
1 голос
/ 23 января 2011

Я m trying to compile phpurple. I m делаю все в соответствии с документацией: hxxp: //phurple.php.belsky.info/ch02.html

, но "make" выдает ошибку:

/myhomedir/phpurple/purple.c: In function ‘call_custom_method’:
/myhomedir/phpurple/purple.c:1370: error: ‘zend_fcall_info’ has no member named ‘object_pp’
/myhomedir/phpurple/purple.c:1408: error: ‘zend_fcall_info_cache’ has no member named ‘object_pp’

Я нашел других людей с такой же проблемой:hxxp: //www.mail-archive.com/monetdb-bugs@lists.sourceforge.net/msg05515.htmlhxxp: //belsky.info/archives/23-Phurple-per-se-PHPurple.html

, но никто не дает никакой информации об успешной сборке php 5.3 и сообщении

PROJECTЗАКРЫТОесли вам нужна коммерческая поддержка php 5.3, дайте мне знать ...)

не помогает вообще.

Кто-нибудь знает, как его скомпилировать, или есть подсказки, как решить проблему?

PS Извините за ссылки, какое-то странное ограничение StackOverflow

Ответы [ 6 ]

1 голос
/ 23 января 2011

То, что вы видите, - это изменчивый интерфейс PHP (хм, задержите ваши голоса, я сказал shifty ).Я имею в виду, что прототипы функций могут изменяться от версии к версии.Возьмите этот мета-пример:

int foo_call_bar(const char *foobar, size_t len);

И в более поздней версии чего-либо функция динамически вычисляет длину, тем самым исключая вторую переменную в прототипе:

int foo_call_bar(const char *foobar);

Некоторые проекты стремятсявсегда поддерживать обратную совместимость, чтобы облегчить эту головную боль, что может быть достигнуто с помощью директив препроцессора, которые создают прототип новой реализации с переменной len, но просто ничего с этим не делают.Если бы PHP сделал это, база кода стала бы еще более безумной.

К сожалению, вам придется изменить phpurple, чтобы представить правильные аргументы для правильных функций PHP и убедиться, что они соответствуют типа .Это было бы немного сложнее, но, вероятно, не так сложно, как кажется.

Интерфейс VFS ядра Linux такой же, и мне часто приходится переносить старые экспериментальные файловые системы наработать на современных ядрах.

1 голос
/ 23 января 2011

Согласно phpurple требованиям :

 Please let me know, if you've successfully compiled on
 earlier versions. Actually the extension is being developed
 on the php v5.2.6 with the option to be upcomming php v5.3
 compatible.

Авторы должны будут обновить свой источник. Однако, поскольку у вас есть источник, вы можете обновить его самостоятельно, поскольку отметили, что проект CLOSED . Вы также можете разветвить код и создать свой собственный проект gitHub с поддержкой php 5.3.

Удачи.

0 голосов
/ 29 сентября 2013

Что ж, новый URL выглядит как постоянное хранилище с исправлениями для PHP-5.3 и выше.Может быть, это стоит упомянуть, но это все равно не поможет с проверкой.Для меня это работало нормально, поэтому я бы сказал, что стоит попробовать.

0 голосов
/ 08 сентября 2013

Вы можете проверить новые источники, вскоре размещенные на https://github.com/weltling/phurple

0 голосов
/ 11 апреля 2013

Немного поздно, но вот последняя библиотека, которая работает с PHP 5.3:

Страница нового проекта: http://sourceforge.net/projects/phurple

Сообщение в блоге: http://belski.net/archives/23-Phurple-per-se-PHPurple.html

Я столкнулся с проблемой после того, как выполнил ее и добавил расширение в конфигурацию PHP.ini:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/phurple.so' - /usr/lib/php/modules/phurple.so: undefined symbol: ZVAL_ADDREF in Unknown on line 0

Чтобы исправить это, измените строку, содержащую ZVAL_ADDREF в client.c, с

ZVAL_ADDREF(PHURPLE_G(phurple_client_obj));

до

Z_ADDREF_P(PHURPLE_G(phurple_client_obj));
0 голосов
/ 27 января 2011

посмотрите на этого человека

http://sourceforge.net/news/?group_id=235197&id=296063

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...