Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Выхода другого всеравно нет, поэтому решил спросить тут. Кто нибудь писал расширения для php? Всречали какие либо ошибки?
Месяц назад начал писать расширение, и когда код был почти дописан, осталось только пару мелочей, я вдруг что-то менял/чистил в редакторе и больше оно не компилируется не находя обьявлений неких переменых
Release\main.o: In function `gc_remove_from_buffer':
php-5.4.11/Zend/zend_gc.h:191: undefined reference to `_imp__gc_globals_id'
php-5.4.11/Zend/zend_gc.h:192: undefined reference to `_imp__gc_globals_id'
Release\main.o: In function `safe_free_zval_ptr_rel':
php-5.4.11/Zend/zend_execute.h:66: undefined reference to `_imp__executor_globals_id'
Release\main.o: In function `i_zval_ptr_dtor':
php-5.4.11/Zend/zend_execute.h:85: undefined reference to `_imp__executor_globals_id'
Release\main.o: In function `zend_vm_stack_init':
php-5.4.11/Zend/zend_execute.h:194: undefined reference to `_imp__executor_globals_id'
Release\main.o: In function `zend_vm_stack_destroy':
php-5.4.11/Zend/zend_execute.h:199: undefined reference to `_imp__executor_globals_id'
Release\main.o: In function `zend_vm_stack_extend':
php-5.4.11/Zend/zend_execute.h:211: undefined reference to `_imp__executor_globals_id'
Release\main.o:php-5.4.11/Zend/zend_execute.h:212: more undefined references to `_imp__executor_globals_id' follow
Release\main.o: In function `php_set_error_handling':
php-5.4.11/main/php.h:296: undefined reference to `_imp___Z27zend_replace_error_handling21zend_error_handling_tP17_zend_class_entryP19zend_error_handlingPPPv'
Для компиляции нужна лиш одна либа php5ts.lib, и она конешно же подключена но толку мало. Впринципе ошибка даже не из-за расширения т.к если убрать весь код с него то она всеравно будет, она из-за компиляции самого php...
Компилировал по этой схеме http://habrahabr[dot]ru/post/125597/
Ах да win7 x64, компилирую в mingw. Проэкт лежит уже месяц и совесть некак не позволяет его забросить, а все попытки исправить неудачны, поисковики на эти ошибки вобще молчат! Думал написать на stackoverflow, но с англиским у меня туго.
Этот пост это просто крик души.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Мелкий
Отправлено: 20 Марта, 2013 - 18:14:08
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Я бы посоветовал повторить в виртуалке. Есть ощущение, что случайно изменили исходник PHP.
----- PostgreSQL DBA
OrmaJever
Отправлено: 20 Марта, 2013 - 19:46:36
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Хмм.. а ведь в этих словах есть здравый смысл! Да я закоментировал 2 обьявления где то в исходниках, но только потому что ругалось на повторное обьясвление, но вроде после того компилировалось... Сейчас попробую скачать чистые исходники. (Добавление)
хмм... нет, конментировал строку в win95nt.h
Соответственно оно должна быть скомпилирована и находится в либе php5ts.lib, в проэкте константа потокобезопасности (ZTS) установлена, потокобезопасная либа так же подключена, но блин не находит в ней грёбаную "gc_globals". Ну вот как так? Это вобще возможно?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
esterio
Отправлено: 21 Марта, 2013 - 07:59:08
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
extension не писал, но интерс что Вы там такое пишете возник!!
OrmaJever
Отправлено: 21 Марта, 2013 - 11:17:36
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Если допишу то выложу вместе с исходниками, а если нет то и смысла говорить нет
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
OrmaJever
Отправлено: 21 Марта, 2013 - 17:26:14
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Ура ура, я переустановил редактор вместе с компилятором, сбросил всё что возможно было по дефолту и скомпилировалось. Сегодня вспомню что я там писал и скоро выложу.
Кстате такой вопрос, а если на хостинге доступен php.ini возможно ли подключить свой php extension?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
EuGen
Отправлено: 21 Марта, 2013 - 17:48:27
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Это можно попытаться сделать даже если php.ini недоступен (не удастся, правда, в не потоко-безопасном режиме такое проделать, да и в CGI тем более, но все же): dl
А если доступен php.ini - так в чем вопрос? Указать правильный путь к динамически загружаемым расширениям и добавить своё в секцию extensions
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
OrmaJever
Отправлено: 21 Марта, 2013 - 17:52:40
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
EuGen пишет:
А если доступен php.ini - так в чем вопрос? Указать правильный путь к динамически загружаемым расширениям и добавить своё в секцию extensions
Слишком просто показалось, решил что так не бывает ;)
А функция dl вобще обрадовала! Спасибо EuGen (Добавление)
EuGen пишет:
не удастся, правда, в не потоко-безопасном режиме такое проделать, да и в CGI тем более, но все же
Ну если подумать по логике то на всех хостингах php стоит как мод апача, и я думаю у всех потокобезопастная версия. А в чём кстате преймущество non thread safe? Зачем его сделали?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
OrmaJever
Отправлено: 25 Марта, 2013 - 21:35:38
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Блин ну линукс конешно меня убитвает. Предложение из статьи http://habrahabr[dot]ru/post/125597/ "В *nix'ах все оказалось как всегда проще." я не забуду никогда!
собрал Makefile как указано в статье, он вызвает libtool
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.