हमारे पास उन पुस्तकालयों के आधार पर कोर पुस्तकालयों और अनुप्रयोगों की एक बड़ी संख्या है। हम प्रत्येक प्रोजेक्ट या लाइब्रेरी के लिए विजुअल स्टूडियो समाधान का उपयोग कर लिनक्स और विंडोज पर मेकफ़ाइल आधारित बिल्ड सिस्टम बनाए रखते हैं।
हम इसे हमारी जरूरतों के लिए अच्छी तरह से काम करता है, प्रत्येक पुस्तकालय या एप्लिकेशन लिनक्स या खिड़कियों पर या तो मन में पार संकलन के साथ (जैसे मंच विशिष्ट एपीआई का उपयोग नहीं करते) विकसित की है। हम फ़ाइल पथ, थ्रेड आदि जैसे सामानों के लिए बढ़ावा का उपयोग करते हैं। विशिष्ट मामलों में हम प्लेटफ़ॉर्म विशिष्ट समाधान (उदाहरण के लिए ईवेंट) चुनने के लिए टेम्पलेट्स/# परिभाषित करते हैं। तैयार होने पर हम अन्य सिस्टम (लिनक्स या विंडोज़) पर जाते हैं, पुनः संकलन करते हैं, चेतावनियां/त्रुटियों और परीक्षण को ठीक करते हैं।
दोनों प्लेटफार्मों पर संकलन पार करने के लिए समय निकालने के बजाय हम प्रत्येक प्लेटफ़ॉर्म के लिए सर्वोत्तम प्रणाली का उपयोग करते हैं और विशिष्ट मुद्दों को ठीक करने और सॉफ़्टवेयर को बेहतर बनाने में समय व्यतीत करते हैं।
हम केवल Windows एटीएम पर जीयूआई क्षुधा की है। तो संकलन पार करने के लिए कोई जीयूआई नहीं है। विंडोज और लिनक्स के बीच साझा किए गए हमारे अधिकांश विकास सर्वर साइड नेटवर्किंग (सॉकेट, टीसीपी/आईपी, यूडीपी ...) और फिर विंडोज़ पर लिनक्स और जीयूआई ऐप्स पर क्लाइंट साइड टूल्स हैं।
स्रोत कोड संस्करण प्रबंधन हम काफी कई मामलों में मिल के लिए जबरदस्ती के साथ का उपयोग करते हुए कि लिनक्स Makefile प्रणाली भी बहुत कुछ है कि हम क्या जरूरत है फिर Windows बनाम के लिए लचीला है विशेष रूप से एकाधिक वर्कस्पेस (स्रोत कोड संस्करणों के दृश्य) का उपयोग करने के लिए जहां हमें सामान्य निर्देशिकाओं को इंगित करने की आवश्यकता होती है और इसी तरह। लिनक्स पर यह पर्यावरण चर को अद्यतन करने के लिए स्वचालित रूप से एक स्क्रिप्ट चलाया जा सकता है, विजुअल स्टूडियो रेफरेंसिंग पर्यावरण चर पर बहुत ही लचीला है क्योंकि दृश्यों/शाखाओं के बीच स्वचालित रूप से अपडेट करना मुश्किल है।
पुन सिंक प्रश्न:
मैं आप कैसे सुनिश्चित करें कि दो निर्माण सिस्टम लिनक्स और विंडोज के बीच सिंक्रनाइज़ हो बनाने के लिए पूछ रहे हैं मान। हम वास्तव में विंडोज पर लिनक्स और क्रूज़ कंट्रोल पर हडसन का उपयोग कर रहे हैं (हमारे पास पहली बार क्रूज़ कंट्रोल के साथ खिड़कियां थीं, जब मैं लिनक्स संस्करण स्थापित करने गया था तो मुझे लगा कि हडसन बेहतर है इसलिए अब हमारे पास मिश्रित वातावरण है)। हमारे सिस्टम हर समय चल रहे हैं। जब कुछ अपडेट किया जाता है तो इसका परीक्षण और रिलीज़ किया जाता है (या तो विंडोज या लिनक्स संस्करण) ताकि अगर आप काम नहीं करते हैं तो आपको तुरंत पता चल जाएगा। परीक्षण के दौरान हम सुनिश्चित करते हैं कि सभी नवीनतम सुविधाएं वहां हैं और पूरी तरह कार्यात्मक हैं। मुझे लगता है कि यह है, कोई अंधेरा जादू शामिल नहीं है।
ओह का मतलब है कि स्क्रिप्ट बनाएं ... प्रत्येक एप्लिकेशन में इसका स्वयं का समाधान होता है, समाधान में आप निर्भरता सेट अप करते हैं। लिनक्स पक्ष पर मेरे पास प्रत्येक प्रोजेक्ट के लिए मेकफ़ाइल है और प्रोजेक्ट निर्देशिका में एक बिल्ड स्क्रिप्ट है जो सभी निर्भरताओं का ख्याल रखती है, इसका मतलब है कि मुख्य पुस्तकालयों और दिए गए ऐप के लिए आवश्यक विशिष्ट ढांचे का निर्माण करना है। जैसा कि आप देख सकते हैं कि यह प्रत्येक प्लेटफ़ॉर्म के लिए अलग है, निर्देशिका में परिवर्तन करने और आवश्यक प्रोजेक्ट बनाने के लिए स्क्रिप्ट बनाने के लिए लाइन जोड़ना आसान है।
यह लगातार तरीके से परियोजनाओं को स्थापित करने में मदद करता है।
विंडोज़ पर आप प्रोजेक्ट खोलते हैं और निर्भरता प्रोजेक्ट जोड़ते हैं। फिर कोई जादू शामिल नहीं है।मैं इस प्रकार के कार्यों को विकास से संबंधित मानता हूं, उदाहरण के लिए आपने एक परियोजना में नई कार्यक्षमता को जोड़ा है और ढांचे और शीर्षकों में लिंक करना है। इसलिए मेरे दृष्टिकोण से इन्हें स्वचालित करने का कोई कारण नहीं है - क्योंकि वे डेवलपर्स द्वारा किए जाने वाले डेवलपर्स के हिस्से का हिस्सा हैं।
आउट सिस्टम अधिकतम दो प्लेटफार्मों के लिए है, तो सवाल यह है कि अगर सेमेक "हत्या पर" नहीं है? एक और बिंदु मुझे चिंता है कि निर्माण पुन: उत्पन्न होना चाहिए (स्क्रैच से दो बार निर्माण करना * समान * उत्पादों को बिल्कुल देगा)। निस्संदेह देशी निर्माण प्रणाली का उपयोग करके मैं लक्ष्य के करीब हूं। क्या यह संभव है कि सेमेक इसे तोड़ देगा और इसे संकलित करने वाले व्यक्ति की सेटिंग के आधार पर vcproj/makefiles को अलग करेगा (उदाहरण के लिए विंडोज़ प्रत्येक डेवलपर अपनी निजी मशीन पर संकलन करता है)? – dimba
केवल विजुअल असिस्ट के बारे में एक नोट के लिए। खाली समाधान का उपयोग करते समय इसमें निर्देशिका से फाइल लोड करने का विकल्प होता है। –