2015-07-01 6 views
5

Qt 5 CMake manual कहा गया है कि qt5_use_modules मैक्रो अब मान्य नहीं है:`qt5_use_modules` के बजाय उपयोग करने के लिए क्या करें?

इस मैक्रो अप्रचलित है। इसके बजाय आयातित लक्ष्यों के साथ target_link_libraries का उपयोग करें।

... लेकिन qt5_use_modules से अधिक बस लिंक पुस्तकालयों को निर्दिष्ट करता है: यह निर्देशिका, आवश्यक संकलन झंडे शामिल निर्दिष्ट करता है, और अधिक (ऊपर लिंक दस्तावेज में पूर्ण विवरण देखें)।

मानते हैं कि परिवर्तनीय QTMODULES में क्यूटी मॉड्यूल की कुछ सूची शामिल है जिसका उपयोग किसी प्रोजेक्ट के लिए किया जाना चाहिए, निम्नलिखित "बहिष्कृत" सीएमके लाइन को प्रतिस्थापित करने के लिए "अनुशंसित" तरीका क्या है?

qt5_use_modules(${myProjectName} ${QTMODULES}) 

निम्नलिखित काम नहीं करता, इसका मुख्य कारण यह किसी भी क्यूटी नहीं जोड़ता है पथ में शामिल हैं:

target_link_libraries(${myProjectName} IMPORTED ${QTMODULES}) 

मैन्युअल रूप से अधिक दोहराया, ताकि include_directories प्रत्येक के लिए कहा जा सकता है होना करने के लिए QTMODULES चर की जरूरत है व्यक्तिगत मॉड्यूल नाम? यह qt5_use_modules से पिछड़ा एक बड़ा कदम लगता है, जो सरल है और "बस काम करता है।" क्या मैं कुछ भूल रहा हूँ?

उत्तर

6

आयातित लक्ष्यों का उपयोग करने के बारे में संदेश वास्तव में उत्पन्न किए गए लक्ष्यों को संदर्भित करता है जो Qt5 के सीएमके मॉड्यूल आपके लिए प्रदान करते हैं, न कि आपको target_link_libraries मैक्रो पर आयातित संपत्ति सेट करनी चाहिए। उदाहरण के लिए, कुछ की तरह:

target_link_libraries(${myProjectName} Qt5::Core Qt5::Widgets) 

जोड़ने की देखभाल के लिए सभी आवश्यक पथ, लिंक पथ, और Qt5Core और Qt5Widgets मॉड्यूल का उपयोग कर के लिए पुस्तकालयों शामिल होंगे।

+0

अभी भी उन मॉड्यूल की सूची वाले वेरिएबल से प्रत्येक नाम को अलग करने की आवश्यकता है, जिसे मैं उपयोग करना चाहता हूं और प्रत्येक को 'Qt5 ::' जोड़ना चाहता हूं। क्या कोई विशेष कारण है कि यह 'qt5_use_modules' का उपयोग करने के लिए बेहतर क्यों है? –

+0

यह * दिलचस्प है, हालांकि, आप पथ शामिल करने के लिए 'target_link_libraries' प्राप्त कर सकते हैं, आदि –

+0

सूची के प्रारूप के आधार पर, आप उस पर कुछ regex करने में सक्षम हो सकते हैं, या सूची के माध्यम से पुन: निर्माण कर सकते हैं सही प्रारूप में एक नया चर ... – Zrax

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