2010-03-31 15 views
6

SWIG (v1.3.40) tarafından oluşturulan bazı sarıcı kodlarının yardımıyla PHP 5.1.6 ile başarıyla kullandığım bir kitaplığım var.SWIG tarafından oluşturulan kod PHP 5.3.2 üzerinde çalışmayı başaramadı undefined symbol: zend_error_noreturn

Sadece PHP 5.3.2 geçtiyseniz ve aşağıdaki hatayı görüyorum: Soruşturma

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

o yudum (myLib_wrap.c) tarafından üretilen sarıcı kod PHP fonksiyonu mesajları içerdiğinden anlaşılıyor : zend_error_noreturn ve bu işlev PHP 5.3.2'de mevcut değil mi?

Bu sorunu daha önce gören oldu mu? Oluşturulan kodu el ile güncelleştirirse, işler zend_error_noreturn yerine zend_error numaralı telefonu arayacak şekilde çalışıyor gibi görünüyor. Bu yaklaşım güvenli midir?

cevap

6

PHP GCC sürüm 3 veya daha birlikte inşa halinde

GCC 2. kullanılıyorsa o da sembolü tanımlanmış olan daha önce oysa sadece zend_error için bir sembol takma adı olarak zend_error_noreturn sembol tanımlanan geçtiğimiz günlerde bir değişiklik oldu

Sembol takma adı PHP'de herhangi bir fayda sağlamayan bir optimizasyon denemesidir ve motorun o kısmının yakın zamanda yeniden ziyaret etmiş olmasından dolayı gerçekten düşürülmüş olmalıdır. Diğer yapılarda sadece zend_error olarak tanımlanmıştır.

zend_error tarafından zend_error_noreturn aramaları değiştirilmesi güvenlidir.

+0

Teşekkürler analogu – user44538

İlgili konular