के साथ विंडोज पर लिबरैचिव से जुड़े हुए हैं, मैं कुछ समय से अपने प्रोजेक्ट में लिबरैचिव का उपयोग कर रहा हूं और यह बहुत अच्छा काम कर रहा है, फिलहाल मैं इसे गतिशील रूप से लिंक कर रहा हूं, इसलिए विंडोज़ पर libarchive.dll फ़ाइल मौजूद है सिस्टम पर अब मैं लाइब्रेरी से स्थिर रूप से लिंक करना चाहता हूं इसलिए मुझे डीएलएल वितरित करने की परेशानी नहीं है, लेकिन मुझे इसे प्राप्त करने की कोशिश में वास्तविक समस्या है!मिनीजीडब्लू
वर्तमान में, मेरी मेकअप फ़ाइल में, मैं कुछ इस तरह है: -Lpath/करने के लिए // libarchive/-larchive
और यह काम करता है, लेकिन यह एक गतिशील लिंक करता है। मुझे नहीं पता कि एक स्थिर लिंक को कैसे लागू किया जाए।
मैं libarchive निर्देशिका में देख सकता हूं दो फ़ाइलें, libarchive.dll.a और libarchive_static.a हैं। मुझे लगता है कि मैं libarchive_static.a से लिंक करना चाहता हूं लेकिन मैं इसे निर्दिष्ट करने के लिए प्रतीत नहीं कर सकता, लिंक बनाने त्रुटियों में बनाने फ़ाइल परिणामों में -larchive_static।
मैं इस धारणा के तहत था कि खिड़कियों के नीचे स्थिर पुस्तकालय lib फ़ाइलें हैं, लेकिन जब मैं libarchive बनाता हूं तो मुझे ऐसी कोई फ़ाइल प्रकार नहीं मिलती है।
मैं libarchive से .lib फ़ाइल कैसे बना सकता हूं। इसके अलावा, एक अतिरिक्त प्रश्न के रूप में, फ़ाइल और lib फ़ाइल के बीच क्या अंतर है?
अद्यतन
स्थिर libarchive से लिंक, मेकअप के लिए अपने पुस्तकालय आदेश को शामिल करना चाहिए करने के लिए:
-Lpath/करने के लिए // libarchive/-larchive_static
यह libarchive_static से लिंक करेगा। एक पंक्ति। हालांकि, आपको अपने कोड में LIBARCHIVE_STATIC को परिभाषित करने की भी आवश्यकता है।
अब समस्या यह है कि libarchive (दूसरों के रूप में रूप में अच्छी तरह) bzip2 लाइब्रेरी पर निर्भर करती है, और आप की तरह लिंकर त्रुटियों कुछ मिल जाएगा, तो आप उनमें से एक स्थिर निर्माण की जरूरत नहीं है: `BZ2_bzCompressInit को
अपरिभाषित संदर्भ
-Lpath// bzip2/-lbzip2
को: 'आप libarchive आदेश के बाद निर्भर पुस्तकालयों और लिंकर लिए एक समान आदेश की एक स्थिर निर्माण की जरूरत है
आप स्रोत से bzip2 निर्माण कर सकते हैं या तो, या यह आसान तरीका है और Gnu32Win परियोजना यहां से पहले से बने द्विआधारी मिलती है: http://gnuwin32.sourceforge.net/packages.html
LIBARCHIVE_STATIC को परिभाषित करने के लिए नोट के लिए धन्यवाद। –