2012-12-17 17 views

उत्तर

18
QT docs से

अंश:

  • Q_DECL_EXPORT जब एक संकलन प्रयुक्त प्रतीकों की घोषणाओं में जोड़ा जाना चाहिए:

    अपने लक्ष्य मंच पर निर्भर करता है, क्यूटी विशेष मैक्रोज़ आवश्यक परिभाषाएँ शामिल प्रदान करता है साझा पुस्तकालय

  • Q_DECL_IMPORT साझा लाइब्रेरी का उपयोग करने वाले क्लाइंट को संकलित करते समय उपयोग किए गए प्रतीकों की घोषणाओं में जोड़ा जाना चाहिए।

मैं क्यूटी कोड की जांच नहीं की है, लेकिन सबसे अधिक संभावना इस मैक्रो निम्न करेगा:

#ifdef _WIN32 || _WIN64 
    #define Q_DECL_EXPORT __declspec(dllexport) 
    #define Q_DECL_IMPORT __declspec(dllimport) 
#else 
    #define Q_DECL_EXPORT 
    #define Q_DECL_IMPORT 
#endif 

__declspec(dllimport) और __declspec(dllexport) आयात करने के लिए और निर्यात (क्रमशः) से एक प्रतीक या लिंकर बताता है एक डीएलएल के लिए। यह विंडोज विशिष्ट है।

आपके विशेष मामले में शायद इस मैक्रो को हटाया जा सकता है, क्योंकि main() अधिकतर लाइब्रेरी का हिस्सा नहीं है।

6

यह कोई कीवर्ड नहीं है, यह एक मैक्रो है जो विभिन्न कंपाइलर विशिष्ट कीवर्ड को exported के रूप में घोषित करने के लिए अलग करता है।

Q_DECL_EXPORT और Creating Shared Libraries भी देखें।

आमतौर पर लाइब्रेरी के साथ उन पुस्तकालयों से परिभाषित करने की आवश्यकता होती है जिन्हें पुस्तकालय से निर्यात करने की आवश्यकता होती है, ताकि अन्य पुस्तकालयों या निष्पादन योग्य द्वारा आयात ("उपयोग") किया जा सके।

मैंने इसे अब तक main फ़ंक्शन के साथ नहीं देखा है, लेकिन यह ब्लैकबेरी विशिष्ट चीज़ हो सकता है। दूसरी ओर, यह tutorial मैक्रो का उपयोग main() फ़ंक्शन के साथ नहीं करता है, इसलिए इसे शायद हटाया जा सकता है।