इसके अलावा, आप शायद छोटे और आत्म निहित संभव/संभव के रूप में है, यानी एक विशाल एकल ऑब्जेक्ट फ़ाइल पर कई छोटे वस्तु फ़ाइलों को पसंद करते हैं के रूप में अपने स्रोत कोड फ़ाइलों को रखना चाहता हूँ।
यह अनावश्यक पुनर्मूल्यांकन से बचने में भी मदद करेगा, इसके अतिरिक्त आप प्रत्येक स्रोत कोड निर्देशिका या मॉड्यूल के लिए ऑब्जेक्ट फाइलों के साथ एक स्थिर लाइब्रेरी रख सकते हैं, मूल रूप से संकलक को यथासंभव पहले संकलित कोड का पुन: उपयोग करने की इजाजत देता है।
कुछ और, जो कि पिछले किसी भी प्रतिक्रिया में अभी तक उल्लेख नहीं किया गया था, प्रतीक के रूप में प्रतीक को 'निजी' के रूप में संभव बना रहा है, यानी आपके कोड के लिए स्थिर लिंकेज (फ़ंक्शंस, वैरिएबल) पसंद करते हैं, यदि इसे नहीं करना है बाहरी रूप से दिखाई दें।
इसके अलावा, आप GNU gold linker का उपयोग करना भी देख सकते हैं, जो much more efficient है जो ईएलएफ लक्ष्यों के लिए सी ++ कोड संकलित करने के लिए है।
असल में, मैं आपको सलाह देता हूं कि आप अपनी बिल्ड प्रक्रिया को सावधानीपूर्वक प्रोफाइल करें और जांचें कि अधिकतर समय कहां खर्च किया जाता है, जो आपको अपनी बिल्ड प्रक्रिया या अपनी परियोजनाओं के स्रोत कोड संरचना को अनुकूलित करने के तरीके के बारे में कुछ संकेत देगा।
यह भी सुनिश्चित करें कि कोई भी रिकर्सन किया गया है ताकि मेक-जे वास्तव में काम करे। उदाहरण के लिए, "मेक-सी सबडिर" को कॉल करने के लिए, $ (MAKE) आदि का उपयोग करें। – richq
मुझे यकीन नहीं है कि मैं सुझाव समझता हूं। –
यदि आपकी मेकफ़ाइल केवल कॉल करके रिकर्स करते हैं, तो आपको -j के साथ अधिक स्केलेबिलिटी नहीं मिलेगी क्योंकि केवल शीर्ष स्तर बनाने के लिए -जे तर्क का उपयोग किया जाएगा, आपको $ (MAKE) का उपयोग करना चाहिए क्योंकि यह उसी के साथ प्रस्तुत करता है - जे और आपके पास सभी नौकरियां चलाने के लिए एक बेहतर अवसर होगा। –