मेरी क्यूटी परियोजना को कुछ हद तक व्यवस्थित (क्यूटी निर्माता का उपयोग करके) रखने के लिए, मुझे एक .pro फ़ाइल और एकाधिक .pri फ़ाइलें मिल गई हैं। हाल ही में मैंने अपनी .pri फ़ाइलों में से एक में एक क्लास जोड़ा है जिसमें एक ही फ़ाइल नाम एक वर्ग के रूप में है जो पहले से ही एक अलग .pri फ़ाइल में मौजूद है।क्यूटी एमओसी फ़ाइल नाम कई .pri फ़ाइलों का उपयोग करके टकराव
qmake द्वारा उत्पन्न फ़ाइल संरचना और मेकफ़ाइल फ़ाइल नाम टकराव के लिए अनजान प्रतीत होता है। जेनरेट की गई moc_ * फ़ाइलों को सभी एक ही उपनिर्देशिका (या तो रिलीज़ या डिबग, निर्भर करता है) में फेंक दिया जाता है और एक दूसरे को ओवरराइट करने के समाप्त होता है। जब मैं प्रोजेक्ट बनाने की कोशिश करता हूं, तो मुझे इस तरह की कई चेतावनियां मिलती हैं:
Makefile.Release:318: warning: overriding commands for target `release/moc_file.cpp`
और प्रोजेक्ट लिंक करने में विफल रहता है।
यहां मैं जो बात कर रहा हूं उसका एक सरल उदाहरण है।
निर्देशिका संरचना:
+ project_dir | + subdir1 | | - file.h | | - file.cpp | + subdir2 | | - file.h | | - file.cpp | - main.cpp | - project.pro | - subdir1.pri | - subdir2.pri
project.pro की सामग्री:
TARGET = project
TEMPLATE = app
include(subdir1.pri)
include(subdir2.pri)
SOURCES += main.cpp
subdir1.pri की सामग्री:
HEADERS += subdir1/file.h
SOURCES += subdir1/file.cpp
subdir2.pri की सामग्री:
HEADERS += subdir2/file.h
SOURCES += subdir2/file.cpp
क्या कोई ऐसा सिस्टम उत्पन्न करने के लिए qmake को बताने का कोई तरीका है जो moc_ * फ़ाइलों को अलग .pri फ़ाइलों को अलग उपनिर्देशिकाओं में रखता है?
मैं जरूरी भ्रम तर्क से सहमत नहीं है के रूप में मेरे शामिल बयान आम तौर पर फार्म के होगा: #include "subdir1/file.h" nontheless, आप सही होने लगते हैं। अद्वितीय फ़ाइल नाम यहां जाने का एकमात्र तरीका प्रतीत होता है। – Stephen
मेरा मानना है कि एमओसी फाइलें और ऑब्जेक्ट फाइलें अब टकरा नहीं जाएंगी यदि आपने मेरा पीछा किया है .. हालांकि आपकी टिप्पणी के विपरीत :) मेरा गलत होने पर मुझे सही करें .. – liaK