2013-06-01 4 views
5

ऐसा लगता है कि यह वास्तव में सरल होना चाहिए, फिर भी ऐसा करने का कोई तरीका नहीं लगता है जैसा कि कोई उम्मीद करेगा।क्यूटी निर्माता, मैं एक सी ++ प्रोजेक्ट को दूसरे में कैसे जोड़ूं?

मेरे पास क्यूटी निर्माता में दो अलग-अलग सी ++ परियोजनाएं खुली हैं, और मैं दूसरे में एक प्रोजेक्ट के खिलाफ शामिल/संकलित करना चाहता हूं।

project_a/ 
    project_a.pro 
    someheaders.h 
    somecode.cpp 
    main.cpp 

project_b/ 
    project_b.pro 
    someheaders.h 
    somecode.cpp 
    main.cpp 

मूल रूप से मैं परियोजना ख में project_a से फ़ाइलों को शामिल करने में सक्षम होना चाहते:

यहाँ मेरी लेआउट है। मैंने Project_b को project_b के भीतर निर्भरता के रूप में सेट किया है, लेकिन ऐसा लगता है कि दो परियोजनाओं का उपयोग करने के साधन के रूप में पूरी तरह अप्रभावी है। मैं क्या करूं?

उत्तर

4

& निर्माण एक के रूप में दोनों परियोजना को खोलने के लिए आदेश में, प्रकार subdirs साथ मेटा-परियोजना का उपयोग करें:

TEMPLATE = subdirs 
SUBDIRS += project_a project_b 
# Use ordered build, from first subdir (project_a) to the last (project_b): 
CONFIG += ordered 

आप निर्देशिका any_name को subproject any_name.pro रखना चाहिए, और इस निर्देशिका के अगले मेटा-परियोजना के लिए .pro फ़ाइल ।

यदि आप अन्य परियोजना से शीर्ष लेख शामिल project_a.pri फ़ाइल है कि लिखने के उदाहरण के लिए, चाहते हैं:

include(../project_a/project_a.pri) 

आप project_a उपयोग करना चाहते हैं: इससे project_b.pro को यह फ़ाइल शामिल

# PWD expands to directory where project_a.pri placed. 
INCLUDEPATH += $$PWD/ 
INCLUDEPATH += $$PWD/network 

लाइब्रेरी के रूप में, इसे TEMPLATE = lib पर बदलें और विज़ार्ड के साथ लाइब्रेरी जोड़ें, संदर्भ मेनू में उपलब्ध जब project_b.pro संपादक में खोला गया।

+0

ठीक है, तो इसका पहला भाग काम करता है। मेरे पास दो परियोजनाओं के साथ एक उपनिवेश परियोजना है। लेकिन मैं अभी भी project_b के भीतर project_a से हेडर का उपयोग नहीं कर सकता। मैंने project_a में एक project_a.pri फ़ाइल जोड़ा है लेकिन अभी भी किसी भी शीर्षलेख तक नहीं पहुंच सकता है। –

+0

मैं भी उन्हें शामिल करने के बारे में अस्पष्ट हूं। मैंने उन्हें '../ project_a/header.h' का उपयोग करके शामिल करने में कामयाब रहा है लेकिन यह सुरुचिपूर्ण से कम लगता है! –

+0

क्षमा करें, मैं इसका उल्लेख करना भूल गया हूं। अब अपडेट का जवाब दें। –

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