C के लिए विकास का वातावरण


10

सी विकास के लिए एक सुविधाजनक और उत्पादक विकास वातावरण स्थापित करने पर विचारों की तलाश। मुझे C संपादन Vim के साथ बहुत मददगार लगा, लेकिन मैं सुझावों का व्यापक नमूना प्राप्त करना चाहूंगा।


@txwikinger सहमत है, मैं यहाँ CW पुलिस का पहला होना नहीं चाहता था :)। या फिर एक [व्यक्तिपरक] टैग है, जो एक दर्दनाक मौत मरने के लिए की जरूरत है बनाने के लिए
माइकल Mrozek

वहां पहले से ही कम्युनिटी विकी हैं। तो कोई बहाना नहीं :) और मैंने व्यक्तिपरक टैग बनाया है, इसलिए आपकी सभी चिंताएं दूर हो गई हैं। कृपया समुदाय विकी की जांच करें :)
txwikinger 22

@txwikinger यह वास्तव में है हतोत्साहित , अब तो मैं सभी पोस्ट है कि यह था से निकाल दिया था
माइकल Mrozek

जवाबों:


12
  • Emacs / Vim / Eclipse / ... - व्यक्तिगत रूप से मैं एक Emacs उपयोगकर्ता हूं। यदि आप नियंत्रण अनुक्रम अपने पिंकी टायर, बस वाइपर मोड यह मिल जाए। Emacs यूनिक्स में इतनी अच्छी तरह से एकीकृत है, जिससे सभी चीजों को एक जगह से नियंत्रित करना बहुत आसान हो जाता है। विम यहाँ भी एक अच्छा काम करता है, लेकिन मुझे लगता है कि एलिस्प में विम स्क्रिप्ट की तुलना में अधिक शक्तिशाली विस्तार भाषा है। सी विकास के लिए Emacs स्थापित करने के सभी तरीकों के बारे में घंटों तक बात कर सकता है। फ्लाईमेक मोड का उल्लेख किया गया है, और चीजों के लिए एक सुपर शुरुआत है। मैं एक्लिप्स से परिचित नहीं हूं, मुझे नहीं लगता कि यह कोड के लिए मेरी स्क्रीन पर पर्याप्त जगह छोड़ता है, न ही मुझे यह पसंद है कि यह कितना फूला हुआ है (विम उपयोगकर्ता Emacs के बारे में एक ही बात कहेंगे)। मैं विशुद्ध रूप से सौंदर्य कारणों से जावा में लिखी गई किसी भी चीज के खिलाफ गलत तरीके से पक्षपाती हूं।

  • Ctags - अपने C (या कई अन्य भाषा) को टैग करें ताकि Vim या Emacs या जो कुछ भी आपकी फ़ाइलों में हाइपर-टेक्स्ट लिंकिंग का थोड़ा सा कर सकें। कहते हैं कि आप इधर-उधर भटक रहे हैं और आप एक समारोह देखते हैं और आप यह कहते हुए अपना सिर खुजलाते हैं कि "वह फिर क्या करता है? नामकरण थोड़ा अस्पष्ट है।" प्लंक-प्लैंक-प्लंक, आप इसकी परिभाषा के लिए सीधे जाप कर सकते हैं।

  • Cmake / Gnu-Autotools - मेक महान है, लेकिन कुछ बिंदु पर आपको चीजों को थोड़ा सा अमूर्त करने की आवश्यकता होती है ताकि आपकी परियोजना सभी प्रकार के सिस्टम पर खुद का निर्माण कर सके जिसके लिए आपके पास परीक्षण का कोई तरीका नहीं है। यदि आपको केवल * निक्स पर अपना कोड बनाने के लिए लोगों की आवश्यकता है, तो ऑटोटूलस महान है, लेकिन, वास्तव में, आपको सीमेक के साथ वैसे भी खुद को परिचित करना चाहिए। Cmake टीम हर संभव विन्यास में कोड का निर्माण करती है और सुनिश्चित करती है कि आपको सिरदर्द से गुजरना नहीं है। यदि आप चाहते हैं कि आपकी परियोजना आसानी से दूसरों को खरीदने के लिए तैयार हो, तो इनमें से एक उपकरण महत्वपूर्ण है।

  • Git / Mercurial / Subversion / ... - आप महीनों के खर्च पर नियंत्रण सॉफ्टवेयर पर शोध कर सकते हैं, लेकिन आपको शायद Git के साथ जाना चाहिए। यह ठोस है, इसे वितरित किया गया है, @ $! #% & Linux कर्नेल को इसके साथ ट्रैक किया गया है। यदि यह लिनस के लिए काफी अच्छा है, तो यह आपके लिए काफी अच्छा हो गया है। मैं मर्क्यूरियल के बारे में भी अच्छी बातें सुनता हूं, जाहिरा तौर पर G ** gle उनका उपयोग करता है, इसलिए यह शायद बुरा नहीं है। कुछ लोग तोड़फोड़ और सीवीएस और व्हाट्सएप को पसंद करते हैं। मैं उन्हें पसंद नहीं करता क्योंकि वे अखंड हैं, जो मेरे लिए बहुत असुविधाजनक और सीमित है।

  • Stumpwm / wmii / XMonad / ... - कुछ बिंदु पर आप यह महसूस करने जा रहे हैं कि अपने काम को चालू रखने के लिए आप जो कुछ भी कर सकते हैं वह आपके आउटपुट को बेहतर बनाने वाला है। अपने दिमाग को तोड़ने के संदर्भ में रखने के सर्वोत्तम तरीकों में से एक टाइलिंग, कीबोर्ड ड्रिवन विंडो प्रबंधकों पर स्विच करना है। मैं StumpWM का एक व्यक्तिगत प्रशंसक हूं , जो खिड़की के प्रबंधकों का Emacs है। पूरी तरह से एक ऑन-द-फ्लाई कस्टमाइज़िंग कॉमन लिस्प प्रक्रिया में लागू किया गया है, जो कुछ भी आप अपने आप को दोहराव करते हुए पाते हैं, उसे फ़ंक्शंस में बंद किया जा सकता है और कमांड के लिए बाध्य किया जा सकता है। उत्तम सामग्री। मैं दूसरों में से किसी के बारे में ज्यादा नहीं जानता, लेकिन हो सकता है कि आगे के विस्तार के लिए दूसरे धागे को छोड़ दिया जाए। उपयोग के रूप में सबसे महत्वपूर्ण के रूप में उपयोग करें।

  • जीडीबी - मैं अन्य डिबगर्स से परिचित नहीं हूं, लेकिन यह डी-फैक्टो मानक प्रतीत होता है।

  • Valgrind - मुझे ऐसी किसी और चीज़ के बारे में पता नहीं है जो ऐसा करती है। Valgrind उन सभी pesky प्रोफाइलिंग / मेमोरी लीक शिकार के लिए महत्वपूर्ण है जिन पर आप जाना चाहते हैं। आप बस Valgrind के बिना malloc / calloc के साथ कोड नहीं लिख सकते।


मैं उस सूची में Linux प्रदर्शन काउंटर ( perf.wiki.kernel.org/index.php/Main_Page ) और / या Oprofile ( oprofile.sourceforge.net/news ) जोड़ूंगा
मार्क प्रोब्स्ट

मैंने अभी इसे एक सामुदायिक विकि बनाया है, इसलिए आप इसे वहां जोड़ सकते हैं जो आपको उचित लगे। प्रदर्शन काउंटर केवल लिनक्स प्रतीत होता है? मैं इसकी पुष्टि / खंडन करने के लिए देखूंगा, लेकिन यदि ऐसा है तो इसे कम से कम इसके सुझाव में नोट किया जाना चाहिए।
एली फ्रे

2

मैं थोड़ी देर के लिए विम के साथ बना रहा, यह वीआईएम की मूल बातें जानने के लायक है क्योंकि आप हमेशा एक यूनिक्स बॉक्स पाएंगे जो केवल उसी के पास है, लेकिन मैंने एमएसीएस की कोशिश की और पीछे मुड़कर नहीं देखा। ग्रहण एक 'आधुनिक' विकल्प है, मेरी प्रणाली में तीनों हैं!


2

यह बहुत अधिक व्यक्तिगत पसंद है, इसलिए मुझे नहीं लगता कि मैं आपको बता सकता हूं कि मैं क्या उपयोग करता हूं। मेरे पास फ्लाइमेक मोड के साथ Emacs सेट है , जो समय-समय पर उस फ़ाइल को संकलित करता है जिस पर आप काम कर रहे हैं और कंपाइलर आउटपुट को यह पता लगाने के लिए कि आपने क्या त्रुटियां की हैं। यह बफर में त्रुटियों / चेतावनियों को बाधित करता है, और संबंधित संकलक त्रुटि संदेश दिखाता है


2

मैं केट (पाठ) gcc / avr-gcc और मेक का उपयोग करता हूं, Git के साथ VC के रूप में। मैं मुख्य रूप से अजगर में सी और कंप्यूटर साइड में एम्बेडेड सामान करता हूं।


2

यदि आप यूनिक्स / लिनक्स के तहत सी विकास कर रहे हैं, तो आपको इस परियोजना का कोई महत्वपूर्ण आकार होने पर सीस्कोप का उपयोग करना होगा।

कार्य करने के लिए कूद - Cscope ब्राउज़िंग स्रोत कोड के लिए एक डेवलपर के उपकरण है foobarकी परिभाषा, सभी स्थानों पर जहां वेरिएबल प्राप्त fooसंदर्भित है सहित सभी फाइलों को मिल जाए, bar.h, की सभी घटनाओं को बदलने barमें bazआदि,

इसके अलावा, आपने अपनी पोस्ट में Vim का उल्लेख किया है ... यहाँ Vim & Cscope का एक साथ उपयोग करने पर एक ट्यूटोरियल है



1

मेरी निजी पसंदीदा है exVim । इसके बहुत सारे विम प्लग हैं जो बड़े कोड बेस के साथ उपयोग करना बहुत आसान बनाता है। मैं इसकी विशेषताओं को जानने के लिए लगभग 1 दिन का समय लेता हूं, लेकिन यह इसके लायक होगा।


1

मैं कंसोल में सी को विम के साथ संपादित करता हूं। मैं मेकफाइल्स को नियोजित करता हूं और मेरे कोड का परीक्षण करने के लिए कई संकलक हैं, जिसमें gcc, clang (LLVM) और icc शामिल हैं। अन्य चीजें जो मैं अपने विकास के माहौल का हिस्सा मानता हूं: grep, डीबगर्स और वालग्रिंड का उपयोग। अधिक जटिल बनाता है के लिए एक पटकथा भाषा। संस्करण नियंत्रण के लिए पकड़।

मेरे मन में कोड को संपादित करने के लिए आपके द्वारा उपयोग किए जाने से अधिक महत्वपूर्ण यह है कि आप अपने कोड को कैसे बनाते हैं। यह कैसे तय किया जाए कि स्टैक ओवरफ्लो के लिए एक सवाल है, लेकिन, जैसा कि आपने पूछा, मेरे पास अक्सर वितरण कोड के लिए ऑब्जेक्ट कोड के लिए एक अलग निर्देशिका है और परिणामी बिनर के लिए एक और फ़ोल्डर (y | ies)। मेरे पास एक परीक्षण फ़ोल्डर है जिसमें अधिक सी फाइलें हैं जो मैं लिख रहा हूं सभी जेनेरिक कोड का उपयोग करता हूं और अंतिम प्रोजेक्ट फाइल के साथ-साथ मैं इन वैलग्राइंड को भी शामिल करता हूं।


1

आप मोटर आईडीई की कोशिश कर सकते हैं । यह शाप आधारित है इसलिए आपको घर पर ऐसा महसूस होना चाहिए (टीएम)।) यह थोड़ा दुखद भी है क्योंकि इसे 5 साल तक बनाए नहीं रखा जा सकता है, इसलिए शायद किसी दिन तोड़ दिया जाए। हालांकि अभी भी - मेरा मानना ​​है कि यह एक कोशिश के काबिल है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.