2011-06-04 11 views
8

मैं अपने कार्यक्रम को दो स्थैतिक रूप से जुड़े पुस्तकालयों: एसएफएमएल और फिजफेस के साथ संकलित करने की कोशिश कर रहा हूं। हालांकि, जोड़ने चरण में मैं निम्नलिखित त्रुटियाँ मिलती है:विभिन्न पुस्तकालयों के बीच नामकरण विवाद

eror LNK2005: _inflatePrime पहले से ही में परिभाषित sfml-ग्राफिक्स-s.lib (inflate.obj)
त्रुटि LNK2005: _inflateGetHeader पहले से ही में परिभाषित sfml-ग्राफिक्स s.lib (inflate.obj)
त्रुटि LNK2005: _adler32_combine पहले से ही sfml-ग्राफिक्स-s.lib (adler32.obj) में परिभाषित
त्रुटि LNK2005: _crc32_combine पहले से ही sfml-ग्राफिक्स-s.lib (crc32.obj) में परिभाषित
त्रुटि LNK1169: एक या अधिक गुणा परिभाषित प्रतीकों

मुझे क्या करना चाहिए जब दो पूरी तरह से असंबंधित पुस्तकालयों में इस तरह के संघर्ष होते हैं?

संपादित करें: ओह कृपया- कृपया मुझे बताएं कि मुझे एक रैपर लिखना नहीं है। मैं चीजों को काम करने के लिए बहुत थक गया हूं, मैं बस अपना खुद का कोड लिखना चाहता हूं। :(

+2

पहला प्रश्न क्या आप सी या सी ++ का उपयोग कर रहे हैं? –

+0

@ नील इट्स सी ++। –

उत्तर

9

दोनों ली ऐसा लगता है कि ब्रांड्स ने निर्भरता रखने के बजाय ज़्लिब लाइब्रेरी को शामिल करना पसंद किया है। मैं इन समावेशन के बिना उन्हें बनाने की कोशिश करता हूं और निष्पादन योग्य zlib के साथ लिंक करता हूं।

+0

आपको बहुत बहुत धन्यवाद, मैं चिंतित था कि मुझे तंत्रिका-मलबे के काम के दूसरे दौर में जाना होगा। अगर किसी और के पास एक ही समस्या है और वे विजुअल स्टूडियो का उपयोग कर रहे हैं, तो इस लिंक को त्वरित और गंदे अस्थायी समाधान के लिए देखें: http://msdn.microsoft.com/en-us/library/70abkas3%28v=VS। 71% 29.aspx –

0

मान लिया जाये कि आप पुस्तकालय स्रोत कोड है, इस नामस्थान के एक जोड़े को जोड़ने के रूप में सरल हो सकता है पुस्तकालय एक के हेडर फाइल में:।

namespace LibA { 

    // existing function declarations 

} 

और C++ स्रोत फ़ाइलों में:

namespace LibA { 

    // existing code 

} 

पुस्तकालय बी के लिए एक ही, लेकिन एक अलग नाम स्थान नाम के साथ। मुझे पता है यह एक दर्द है, लेकिन अगर पुस्तकालयों वास्तव में नाम संघर्ष है, यह साफ दृष्टिकोण है।

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