2011-11-13 9 views
6

मैं आईओएस में एक संकलन त्रुटि हो रही है सिम्युलेटर 4.3 मैं वास्तव में यह आंकड़ा बाहर नहीं कर सकते, त्रुटि मैं मिलता है:libobjc.A.dylib iOS पर त्रुटि संकलन 4.3

dyld: lazy symbol binding failed: Symbol not found: _objc_retain 
    Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib 

dyld: Symbol not found: _objc_retain 
    Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib 

नोट:
संदर्भित पुस्तकालय (libobjc.A.dylib) वास्तव में 'अपेक्षित स्थान' में है I कोड 5OS डिवाइस पर और आईओएस 5 सिम्युलेटर में ठीक काम करता है।

+0

आप इस परियोजना में एआरसी का उपयोग कर रहे हैं? क्या आपका प्रश्न एक [डुप्लिकेट हो सकता है?] (Http://stackoverflow.com/questions/7423489/objective-c-arc-errors-automatic-release-problems) –

+0

एआरसी का उपयोग नहीं कर रहा है, यह परियोजना बहुत जटिल है इसे चालू करो। – oberbaum

+0

यह प्रतीक 4.3 lib में नहीं है, मुझे आश्चर्य है कि यह किससे अनुरोध कर रहा है। दोनों dirs पर जाएं और 'nm libobjc.A.dylib करें grep retain', 4.3 के साथ आप केवल एक प्रतीक _SEL_retain देखेंगे। परियोजना को साफ करने और पुनर्निर्माण करने का प्रयास किया? –

उत्तर

28

सेटिंग बिल्ड में -fobjc-arc जोड़ें => अलग विन्यास

+1

क्या यह बल पूरी परियोजना के लिए चाप सक्षम नहीं करता है? आर्क सक्षम करने के लिए बिंदु नहीं है? – stigi

+1

नहीं, यह पूरी परियोजना के लिए इसे मजबूर नहीं करता है। – mackross

+4

आप इसे ** लिंकर ** ध्वज के रूप में उपयोग करते हैं, ** कंपाइलर ** ध्वज नहीं, इसलिए यह संकलन समय पर केवल एआरसी को प्रभावित नहीं करता है, केवल लिंक समय पर। – 0xced

1

यह समस्या तब होती है यदि आप एक पुस्तकालय एआरसी का उपयोग करता है का उपयोग करें और निर्माण/पुराने iOS पर चलाना चाहते हैं के लिए अन्य लिंकर झंडे (OTHER_LDFLAGS) 4 डिवाइस

सेटिंग बिल्ड = में> अन्य लिंकर झंडे

  • -fobjc-arc
  • जोड़े तो अभी तक हल नहीं किया है, तो जोड़ने -weak_library /usr/lib/libobjc.A.dylib
संबंधित मुद्दे