2011-03-20 10 views
8

मेरे परिदृश्य में मेरे पास सीडीटी ग्रहण में सी ++ प्रोजेक्ट है। हालांकि यह परियोजनाएं एक जटिल अनुप्रयोग की तुलना में व्यक्तिगत (सहायक) कार्यक्रमों का संग्रह है। नतीजतन मैं उन्हें व्यक्तिगत रूप से बनाने और चलाने में सक्षम होना चाहता हूं।ग्रहण सीडीटी फ़ाइल आधार पर बिल्ड/रन

मेरे परियोजना संरचना बहुत सरल है और दिखाई देता है:

src/app1.cpp 
src/app2.cpp 
src/... 

ध्यान दें कि मैं आम हेडर फाइल या पुस्तकालयों की जरूरत नहीं है। हालांकि मैं इस परियोजना में बस उदाहरण बनाकर प्रोग्राम जोड़ना चाहता हूं। src/appx.cpp

आदर्श रूप में मैं के लिए

  • शॉर्टकट करना चाहते हैं "का निर्माण वर्तमान में खोला सीपीपी"

पर कोई सुझाव "वर्तमान में खोला सीपीपी की भागो बाइनरी" अतिरिक्त प्लगइन के बिना यदि संभव हो तो इस व्यवहार को कैसे प्राप्त करें?

उत्तर

5

सीडीटी के साथ मेकफ़ाइल प्रोजेक्ट बनाना और आपके मेकफ़ाइल के अंदर अपने प्रत्येक एप्लिकेशन के लिए एक नया लक्ष्य नियम जोड़ने का एक आसान लक्ष्य नियम है। आप SCons या सीडीटी मेकफ़ाइल प्रोजेक्ट के साथ अन्य बिल्ड सिस्टम का भी उपयोग कर सकते हैं और उसी प्रभाव को प्राप्त कर सकते हैं।

आप ऑब्जेक्ट फ़ाइलों के बजाय निष्पादन योग्य बनाने के लिए प्रबंधित निर्माण को भी चालित कर सकते हैं। विकल्प से निकालें विकल्प प्रॉपर्टी गुणों के अंदर सी ++ कंपाइलर सेटिंग्स के अन्य ध्वज। यह आपकी प्रत्येक स्रोत फ़ाइलों के लिए एक अलग एप्लिकेशन फ़ाइल का उत्पादन करेगा।

बिल्ड निर्देशिका के अंदर बनाए गए एप्लिकेशन फ़ाइलों में ऑब्जेक्ट फ़ाइल एक्सटेंशन होगा और वे निष्पादन योग्य नहीं होंगे।

लिनक्स के लिए postbuild.sh:

chmod +x *.o 
rename -v 's/\.o$//' *.o 

या postbuild.bat विंडोज के लिए: इस समस्या के समाधान के लिए, आप इस तरह के रूप अपनी परियोजना निर्देशिका में एक पोस्ट का निर्माण स्क्रिप्ट जोड़ सकते हैं

rename *.o *.exe 

../postbuild.sh या ../postbuild.bat जोड़ने के बाद अपनी बिल्ड सेटिंग्स में पोस्ट बिल्ड कमांड के रूप में, आप एप्लिकेशन चलाने के लिए तैयार होंगे। इनमें से किसी भी निष्पादन योग्य फ़ाइलों पर राइट क्लिक करें और Debug As या Run As चुनें और एक नया रन कॉन्फ़िगरेशन बनाया जाएगा।

आपको त्रुटियों को रोकने के लिए प्रबंधित निर्माण के लिंकर को भी रोकना होगा। यह लिंकर कमांड को true (लिनक्स) या true.exe (विंडोज़, एमएसआईएस) में बदलने के साथ हासिल किया जा सकता है।

+0

निश्चित रूप से यह मुझे स्वतंत्र रूप से अलग-अलग ऐप्स बनाने/चलाने की अनुमति देता है। हालांकि इसमें उदाहरण के लिए नए ऐप्स जोड़ने के लिए कुछ प्रयास शामिल हैं। मैं एक और अधिक सुविधाजनक तरीका ढूंढ रहा था, जो कि व्यक्तिगत जावा कक्षाओं के लिए "एप्लिकेशन के रूप में चलाने" के समान फ़ाइलों के रूप में फ़ाइलों का उपयोग करता है, – dcn

+0

@ डीसीएन: कृपया अद्यतन उत्तर देखें और देखें कि यह काम करता है या नहीं। मैंने इसे विंडोज के तहत परीक्षण किया है और इसका परीक्षण करने के लिए उबंटू में स्विच किया है। यदि यह आपके लिए काम नहीं करता है, तो आपकी प्रतिक्रियाएं मूल्यवान होंगी। –

+0

यह समाधान वास्तव में काम करता है।काफी स्पष्ट रूप से मैंने कुछ ग्रहण परियोजना विकल्पों का उपयोग करके एक और अधिक स्वच्छ/गैर-मुश्किल समाधान की उम्मीद की थी, जिसे मैंने अभी तक नहीं मिला है, लेकिन मेरा अंतर्ज्ञान कहता है कि आपका सुझाव उतना ही अच्छा है जितना इसे प्राप्त होता है। – dcn

संबंधित मुद्दे