2010-10-23 9 views
13

पर zlib जोड़ने के लिए कैसे मैं क्यूटी की मौजूदा स्थापना में zlib जोड़ सकता हूं। मैं इस में बहुत नया हूं इसलिए कृपया मुझे विस्तृत विवरण दें! अग्रिम में आपकी मदद के लिए धन्यवाद!मौजूदा क्यूटी स्थापना

उत्तर

10

zlib कोर क्यूटी पुस्तकालयों में निहित है। यदि आप एक क्यूटी प्रोग्राम में zlib फ़ंक्शंस का उपयोग करना चाहते हैं, तो आपको केवल zlib.h शामिल करना होगा जो src/3rdparty/zlib में है। उदाहरण देखें src/corelib/tools में QByteArray का कार्यान्वयन।

यदि आप क्वाज़िप का उपयोग करना चाहते हैं, तो बस अपनी प्रोजेक्ट में लाइब्रेरी जोड़ें। यह क्यूटी पुस्तकालयों पर आधारित है। सही Qyazip लाइब्रेरी बनाने के लिए सावधानी बरतें जो आपके क्यूटी इंस्टॉलेशन से मेल खाती है।

INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/zlib 

Qt5 के लिए, देखें Thorbjorn की टिप्पणी: यह #include <QtZlib/zlib.h> उपयोग करने के लिए पर्याप्त है

आप सही अपनी परियोजना फाइल करने के लिए निम्न पंक्ति जोड़कर पथ शामिल मिलता है।

+2

सलाह के लिए धन्यवाद। मुझे एक ही समस्या है, और zlib ने कहा कि शामिल करने के लिए निर्देशिका संकलन को ठीक कर देता है। लिंकिंग चरण। लिंकर को पता नहीं है कि लिंक करने के लिए ज़्लिब को कहां देखना है और न ही मैं करता हूं। कृपया मदद करें। – Septagram

+0

आपको zlib से लिंक नहीं करना है, zlib फ़ंक्शन QtCore4.dll का हिस्सा हैं। – hmuelner

+2

Qt 5 के रूप में निर्देशिका सामान्य रूप से उपलब्ध नहीं है। सौभाग्य से, यह लाइन अब भी आवश्यक नहीं है क्योंकि zlib.h को इस तरह शामिल किया जा सकता है: '# शामिल ' –

7

यदि आप संपीड़न/असंपीड़न के लिए zlib का उपयोग करना चाहते हैं, तो qCompress/qUncompress का उपयोग करें।

+1

कोई वास्तव में मैं इसे जोड़ना चाहता हूं ताकि मैं qyazip fro संपीड़न निर्देशिकाओं का उपयोग कर सकूं .. :( – defiant

2

कम से कम कुछ लोग यहां क्वाज़िप बनाना चाहते हैं, जिसके लिए ज़्लिब की आवश्यकता है।

यहां बताया गया है कि मैंने इसे क्वाज़िप 0.4.3 के साथ विंडोज़ पर कैसे किया।

quazip.pro में सबसे पहले मैं subdirs बदल ही शामिल करने के लिए: http://www.winimage.com/zLibDll/zlib125dll.zip [बाइनरी] http://www.winimage.com/zLibDll/zlib125.zip [स्रोत]

दोनों लिंक आया:

SUBDIRS=quazip 

तब मैं से zlib बाइनरी और स्रोत डाउनलोड किया से http://zlib.net

सबफ़ोल्डर quazip में फिर

/quazip.pro मैं कहा:

INCLUDEPATH += <path to zlib source> 
Win32 {} अनुभाग में

मैं इस लाइन टिप्पणी की:

# *-msvc*: QMAKE_LFLAGS += /IMPLIB:$$DESTDIR\\quazip.lib 

और मैं इस के लिए LIBS लाइन संशोधित:

*-msvc*: LIBS += -lzlibwapi -L<path to zlib binaries>/dll32 

मैं भी zip.c और unzip.c में संशोधित

#include "zlib.h" 

बनने के लिए:

012,
#include <zlib.h> 

इसके बाद मैं इसे रिलीज मोड में बना देता हूं और एक डीएलएल आउट करता हूं।

तो परियोजना इस का उपयोग करने के, मैं निम्नलिखित config कहा:

INCLUDEPATH += <quazip source path> 
INCLUDEPATH += <zlib source path> 

LIBS += -L<quazip source path>\quazip\release -lquazip 

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

7

वर्तमान उत्तर केवल Qt4 के लिए मान्य है। चूंकि Qt5 zlib शीर्षलेख फ़ाइल को एक अलग निर्देशिका में संग्रहीत किया जाता है।qmake संपत्ति का उपयोग करना QT_INSTALL_HEADERS आप अपने .pro फाइल करने के लिए जोड़ सकते हैं:

INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtZlib

यह जैसे काम करता है क्वाज़िप बनाने के लिए, यदि आप इसे quazip.pro

संपत्ति $$[QT_INSTALL_HEADERS]QTDIR/qtbase/include/ पर इंगित करता है जिसमें QtZlib/zlib.h है।

शामिल करने के बिना, आपको प्रत्येक शामिल-स्टेटमेंट को #include <QtZlib/zlib.h> पर बदलना है जैसा कि थोरबोजर्न द्वारा टिप्पणी की गई है।

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