मैक ओएस एक्स 10.6 के तहत "खराब कोडजेन, पॉइंटर डिफ इन बूस्ट" त्रुटि में त्रुटि मैक ओएस एक्स 10.6 के तहत मैं एक सी ++ साझा लाइब्रेरी का निर्माण कर रहा हूं जो 1.46 को बढ़ावा देने के लिए लिंक करता है। मैं एक्सकोड 4.0 के साथ स्थापित कमांड लाइन टूल्स का उपयोग कर रहा हूं।32-बिट बिल्ड
64-बिट बिल्ड ठीक काम करता है। जब 32-बिट के लिए निर्माण, मैं जोड़ने पर निम्न त्रुटि संदेश मिलता है:
ld: bad codegen, pointer diff in boost::detail::sp_counted_base::sp_counted_base()to global weak symbol vtable for boost::detail::sp_counted_basefor architecture i386
केवल वैकल्पिक हल मैंने पाया जी ++ उपयोग करने के लिए है - 4.0 32-बिट निर्माण के लिए। मैंने कोशिश किए गए अन्य कंपाइलर्स (g ++ - 4.2, llvm-g ++ - 4.2 और clang ++) सभी उपर्युक्त त्रुटि उत्पन्न करते हैं।
क्या आप इस चेतावनी से छुटकारा पाने में कामयाब रहे? –
@ स्टीफन पेचर्ड नहीं, मैंने चेतावनी से छुटकारा पाने के लिए प्रबंधन नहीं किया था। मुझे लगता है कि यदि आप लाइब्रेरी को संकलित करते हैं (उदा।, बूस्ट) सटीक समान दृश्यता सेटिंग के साथ आप केवल इससे छुटकारा पा सकते हैं। हालांकि यह प्रणाली के व्यापक तृतीय पक्ष पुस्तकालयों के लिए व्यावहारिक प्रतीत नहीं होता है। – sakra