मैं हाल ही में इस मुद्दे पर भी आया हूं। प्रोजेक्ट को सबप्रोजेक्ट्स में विभाजित करने से सबकुछ अधिक जटिल हो गया है, और कम से कम मेरे पहले प्रयास पर- फ्लैट-आउट काम नहीं किया। तब मैंने CONFIG += object_with_source
और CONFIG += object_parallel_to_source
की कोशिश की, लेकिन दोनों मेरे क्यूटी संस्करण के साथ काम नहीं कर रहे थे।
तो यह मैं कैसे इसे हल है (दृश्य स्टूडियो 2010 के लिए, मैं नहीं जानता कि अगर काम करता है अन्य संस्करणों के साथ एक ही):
तो परियोजना एक साधारण दृश्य स्टूडियो परियोजना, नहीं एक qmake द्वारा उत्पन्न थे , आप यहां वर्णित अनुसार इसे हल कर सकते हैं: Visual Studio 2010 & 2008 can't handle source files with identical names in different folders? (परियोजना सेटिंग्स "सी/सी ++"> "आउटपुट फ़ाइलें"> "ऑब्जेक्ट फ़ाइल नाम") में %(RelativeDir)
को जोड़कर ऑब्जेक्ट फ़ाइलों के आउटपुट डीआईआर को रिश्तेदार डीआईआर में बदलना।
जाहिर है, आप क्यूमेक के साथ एक नया विजुअल स्टूडियो प्रोजेक्ट बनाते समय हाथ से ऐसा नहीं करना चाहते हैं, तो इसे स्वचालित क्यों न करें? सभी विजुअल स्टूडियो प्रोजेक्ट फाइलें सामान्य एक्सएमएल फाइलें हैं। विकल्पों को सेट करने से पहले और बाद में अंतर को देखते हुए यह पता चलता है कि यह ObjectFileName
नामक एक अद्वितीय टैग में सहेजा गया है।
import sys
filename = sys.argv[1]
f = open(filename, "r", -1, "utf-8-sig")
lines = f.readlines()
f.close()
f = open(filename, "w", -1, "utf-8-sig")
for line in lines:
line = line.replace("</ObjectFileName>", "%(RelativeDir)\</ObjectFileName>")
f.write(line)
f.close()
..और मेरे बल्ले-फाइल में इस तरह इसका इस्तेमाल कि मैं हमेशा दृश्य स्टूडियो प्रोजेक्ट बनाने के लिए फोन:
qmake -tp vc myproject.pro
@cd ../scripts
unflatten_vcproj_obj_output.py "../src/myproject.vcxproj"
@pause
तो मैं इस अजगर पटकथा लिखी एक सुंदर समाधान नहीं है, लेकिन यह काम करता है।
स्रोत
2013-01-07 22:53:30
नोट: यह सुविधा हटा दिया गया है, http://qt.gitorious.org/qt/qtbase/commit/a72420d012fd09f0a79ae75b77eb1c3bbff75669/diffs –
हटाने के लिए नए पते के लिए प्रतिबद्ध: http://code.qt.io/cgit/ क्यूटी/qtbase.git/प्रतिबद्ध /? id = a72420d012fd09f0a79ae75b77eb1c3bbff75669 – SGaist