2010-03-31 11 views
6

मेरे पास एक लाइब्रेरी है जिसे मैं SWIG (v1.3.40) द्वारा उत्पन्न कुछ रैपर कोड की सहायता से PHP 5.1.6 के साथ सफलतापूर्वक उपयोग कर रहा हूं।एसडब्ल्यूआईजी जेनरेट कोड PHP 5.3.2 अपरिभाषित प्रतीक पर चलाने में विफल रहता है: zend_error_noreturn

मैं सिर्फ पीएचपी 5.3.2 में अपग्रेड किया है और मैं निम्न त्रुटि देख रहा हूँ:

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 

जांच में ऐसा लगता है कि आवरण बड़ा घूँट (myLib_wrap.c) द्वारा उत्पादित कोड पीएचपी कार्य करने के लिए कॉल भी शामिल : zend_error_noreturn और यह फ़ंक्शन PHP 5.3.2 में उपलब्ध नहीं है?

क्या किसी ने इस मुद्दे को पहले देखा है? यदि मैं मैन्युअल रूप से जेनरेट कोड को अपडेट करता हूं तो zend_error_noreturn पर कॉल करने के बजाय यह zend_error पर कॉल करता है। क्या यह दृष्टिकोण सुरक्षित है?

उत्तर

6

पीएचपी हाल ही में बदल दिया है कि केवल, के लिए zend_error प्रतीक उपनाम के रूप में zend_error_noreturn प्रतीक परिभाषित करता है, तो जीसीसी संस्करण 3 या अधिक से अधिक के साथ निर्माण जबकि पहले यह भी प्रतीक है, तो जीसीसी 2.

का उपयोग करके निर्धारित किया था

प्रतीक उपनाम PHP में केवल एक अनुकूलन प्रयास है जो किसी भी लाभ का लाभ नहीं देता है, और वास्तव में इसे किसी भी व्यक्ति द्वारा हाल ही में इंजन के उस हिस्से पर फिर से संशोधित किया जाना चाहिए था। अन्य निर्माण मामलों में यह सिर्फ zend_error के रूप में परिभाषित किया गया है।

की जगह zend_error_noreturn कॉल zend_error द्वारा सुरक्षित है।

+0

धन्यवाद एनालॉग – user44538

संबंधित मुद्दे