मेरे (मुख्य रूप से C ++) विकास में, मैंने लंबे समय से आउट-ऑफ-सोर्स बिल्ड का उपयोग करने का पालन किया है। यह है कि, मेरे स्रोत आम तौर पर एक में बैठता /project/src
निर्देशिका और एक में रहते हैं बनाता है /project/build/bin/release
, /project/build/bin/debug
निर्देशिका। मैंने ऐसा किया है क्योंकि यह मेरे स्रोत निर्देशिकाओं को मध्यवर्ती फ़ाइलों से साफ रखता है, मेरे पास अपने सभी बायनेरिज़ के लिए एक स्थान है, पैकेजिंग आसान है, सफाई आसान है, और संस्करण नियंत्रण आसान है। (क्या मैं कुछ भूल गया?)
मुझे अब एक (बड़ी) परियोजना विरासत में मिली है जो इन-सोर्स बिल्ड का उपयोग करती है। इस प्रकार की संरचना के लिए प्रेरणा क्या है और इसके फायदे क्या हैं? (मैं इंजीनियरिंग-स्तरीय कारणों बनाम व्यक्तिगत वरीयता प्रकार के कारणों से सबसे अधिक चिंतित हूं।)
मैं उम्मीद कर रहा था कि Lakos का "लार्ज-स्केल C ++ सॉफ्टवेयर डिज़ाइन" उस पर तौला जाएगा, लेकिन अगर ऐसा हुआ तो मैं चूक गया।
/project/src/bin/release
, या वास्तव में सभी मध्यवर्ती और आउटपुट फ़ाइलों में /project/src
? उत्तरार्द्ध वास्तव में एक गड़बड़ हो सकता है यदि एक दर्जन से अधिक स्रोत फाइलें हैं, तो पूर्व ठीक है।
main.cpp
शुरू में आपकी परियोजना के शीर्ष स्तर पर होने के बावजूद, यह अभी भी उस शीर्ष स्तर पर आपके स्रोत से दूर एक अलग cmake बिल्ड निर्देशिका बनाता है। मेरा मानना है कि MSVS इस संबंध में भी Clion के समान है।