मैं GitHub से डाउनलोड किया गया Windows प्रोग्राम (C में लिखा) कैसे स्थापित करूं?


44

मैं (GitHub से एक मृत सरल Windows प्रोग्राम डाउनलोड करने के बाद यह अगर यह प्रासंगिक है)। मैंने इसे एक जिप फाइल के रूप में डाउनलोड किया था, लेकिन मैं यह पता नहीं लगा सकता कि इसे कैसे स्थापित किया जाए। यह सी में लिखा है, मुझे लगता है। क्या मुझे एक कंपाइलर की आवश्यकता है? (विजुअल स्टूडियो?) क्या कुछ सरल है जो मुझे याद आ रहा है?


9
क्षमा करें, यह स्पष्ट रूप से एक प्रमुख noob मुद्दा है जो मैं कर रहा हूं। कैसे? कोई निष्पादन योग्य फ़ाइल नहीं है।
जोश फ्रीडलैंडर

6
कार्यक्रम को संकलित करने के लिए आपको शायद विंडोज एसडीके और संबंधित सी हेडर की आवश्यकता होगी। आम तौर पर, निर्भरता का उल्लेख किया जाता है और रीडमी में संकलन निर्देश शामिल किए जाते हैं। इस मामले में, न तो शामिल है, इसलिए आपको संबंधित जानकारी प्राप्त करने के लिए रेपो मालिक / परियोजना लेखक से पूछना होगा।
लार्सेंडेंड

7
आपको एक कंपाइलर की आवश्यकता है। मैं देव के पास पहुँचता और पूछता कि इसे कैसे बनाया जाए। आमतौर पर लिनक्स सॉफ्टवेयर, उदाहरण के लिए, स्रोत के रूप में प्रदान किए गए निर्देशों का निर्माण शामिल है, लेकिन मैं उसके गितुब पर कोई भी नहीं देखता हूं।
लॉरेंस सी

12
आपने कोई वास्तविक प्रोग्राम डाउनलोड नहीं किया है, आपने प्रोग्राम के लिए स्रोत डाउनलोड कर लिया है और हां, आपको इसे पहले संकलित करने की आवश्यकता है। मेकफाइल को देखते हुए आपको MINGW में जो कुछ भी है उसे बनाने की आवश्यकता होगी।
Mokubai

21
यहाँ निष्पादन योग्य github.com/renatosilva/winutils/releases
बार्लोप

जवाबों:


29

गिथब मुख्य रूप से प्रोग्रामर द्वारा परियोजनाओं पर सहयोग करने के लिए उपयोग किया जाता है। 'डाउनलोड ज़िप' विकल्प आपके कंप्यूटर पर स्रोत कोड की एक प्रति डाउनलोड करता है। यह आमतौर पर 1 में संकलित प्रयोग करने योग्य निष्पादनयोग्य / बायनेरिज़ की एक प्रति नहीं होती है (यानी; exe फाइलें)

रिलीज़ , उपयोगकर्ताओं को समाप्त करने के लिए शिपिंग सॉफ़्टवेयर के लिए एक गितुब सुविधा है (जो आमतौर पर वास्तविक कोडिंग में रुचि नहीं रखते हैं)। सॉफ्टवेयर और स्रोत कोड को डाउनलोड करने के लिए रिलीज नोट्स और लिंक के साथ जारी किया जाता है। यह पहली जगह है जिसे आपको बायनेरिज़ के लिए जांचना चाहिए

आपके मामले में, रिलीज़ पृष्ठ डाउनलोड और सेटअप फ़ाइलें प्रदान करता है।

हालाँकि, कई परियोजनाओं में कोई रिलीज़ नहीं होगी (विशेषकर विंडोज के लिए), जिस स्थिति में आप निम्न में से कोई एक कर सकते हैं:

  1. इंटरनेट पर कहीं और बायनेरिज़ के लिए खोजें। आमतौर पर सर्च इंजन जैसे डकडकगो (या गूगल , अगर आप चाहें तो) आपको वही मिलेगा जो आप आसानी से चाहते हैं। <application name> for Windowsया खोजने का प्रयास करें <application name> exe

  2. इसे स्वयं संकलित करें। ऐसा करने में सक्षम होने के लिए आपको प्रोग्रामिंग भाषा का कम से कम कुछ बुनियादी ज्ञान होना चाहिए। यहां फिर से, खोज इंजन बड़े पैमाने पर सहायक हो सकते हैं । compile <application name> on Windowsया खोजने का प्रयास करें MinGW compile <application name>

    यहां मैं विधवाओं के लिए संकलन उपयोगिताओं की मूल बातें चलाऊंगा:

    • MINGW डाउनलोड करें । मैं व्यक्तिगत रूप से इस पैकेज का पक्ष लेता हूं क्योंकि यह बढ़ावा के साथ आता है (जो कि कई एप्लिकेशन उपयोग करते हैं) और एक शांत शेल। यह भी आता है git, जो सुपर उपयोगी हो सकता है यदि आप स्रोत को अलग से डाउनलोड किए बिना जीथब या अन्य गिट संस्करण नियंत्रण रिपॉजिटरी पर होस्ट की गई फ़ाइलों को संकलित करना चाहते हैं।

    • भागो में निम्न कमांड cmdया powershell:

      • cd c:\sources\hello: निर्देशिका को बदलें जहाँ भी यह है कि स्रोत फ़ाइल (ओं) / स्थित हैं।
      • g++ helloworld.cpp -o helloworld.exe: यहाँ helloworld.cppमुख्य स्रोत फ़ाइल helloworld.exeका नाम है , और संकलित निष्पादन योग्य का नाम है।
      • यदि आपको कई फ़ाइलों को संकलित करना है तो -oस्विच करने से पहले उन्हें सूचीबद्ध करें :g++ helloworld.cpp foo.cpp -o helloworld.exe
      • C ++ के लिए ये निर्देश हैं। यदि आप C में प्रोग्राम किए गए एप्लिकेशन के साथ काम कर रहे हैं, तो फ़ाइल एक्सटेंशन .cइसके बजाय होगा .cpp, और आपको gccइसके बजाय कमांड का उपयोग करना चाहिए g++। बाकी कमोबेश समान है
      • ध्यान दें कि आपको निष्पादन योग्य संकलित करने के लिए अधिक कमांड लाइन तर्क निर्दिष्ट करने की आवश्यकता हो सकती है जो ठीक से काम करता है। प्रोजेक्ट पेज में आमतौर पर ये विवरण होंगे।
      • तुम भी शायद निश्चित रूप से makefiles में देखना चाहते हैं। यह स्टैक ओवरफ्लो पोस्ट सामान्य रूप से मेकफाइल्स के बारे में है, और यह हमें बताता है कि उन्हें मिनगॉव के साथ कैसे उपयोग करना है। यदि कोई प्रोजेक्ट मेकफाइल के साथ आता है, तो स्रोत को मैन्युअल रूप से संकलित करने से पहले इसे आज़माएं।
      • अब आपको दौड़ने में सक्षम होना चाहिए helloworld.exe
    • नोट: अधिकांश परियोजनाएं README फाइल के साथ आती हैं। कृपया नाम का क्या अर्थ है, इन फ़ाइलों में सॉफ़्टवेयर को संकलित करने और चलाने के बारे में महत्वपूर्ण जानकारी है और इसे पढ़ने से आप बहुत सारी अनावश्यक परेशानी से बच सकते हैं।

1 नोट: कभी-कभी binडाउनलोड की गई फ़ाइलों के बीच एक फ़ोल्डर हो सकता है , जिसमें प्रयोग करने योग्य निष्पादन योग्य / बायनेरीज़ होने चाहिए

यदि आप विंडोज पर GNU / Linux कमांड लाइन उपयोगिताओं चाहते हैं, तो Cygwin और GOW भी देखें । मैं कुछ उपयोगी निष्पादनों का नवीनतम संस्करण यहाँ डाउनलोड के लिए उपलब्ध कराता हूँ ।

और अधिक पढ़ने:
http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO
https://gcc.gnu.org/onbuildocs/index.html#dir
https://stackoverflow.com/questions/22873884/how-do-i रन कॉन्फ़िगर-साथ-MinGW


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

मुझे नहीं लगता कि यह ऐबोबोट के इनाम के अनुरोध को संतुष्ट करता है, लेकिन यह आपके और उसके बीच है।
जोश फ्रीडलैंडर

2
@JoshFriedlander खुशी किसी भी मदद की हो! मैं बाद में उत्तर के लिए और अधिक जोड़ूंगा ... हां, मैं जर्नीमैनगीक (एबोबोट) के साथ चैट कर रहा था, वह सतह पर नए जवाब के लिए कुछ दिनों तक इंतजार करने जा रहा है।
rahuldottech

1
इस परियोजना में कोई भी नहीं हो सकता है, लेकिन ध्यान दें कि अधिकांश परियोजनाओं में संभवतः निर्भरताएं होंगी , जिसका अर्थ है कि यदि आप संकलन मार्ग पर जा रहे हैं, तो आपको पुस्तकालयों को ट्रैक करने की आवश्यकता हो सकती है जो सॉफ्टवेयर निर्भर करता है, उन्हें डाउनलोड करें और उन्हें स्थापित करें ( या उन्हें भी संकलित करें)। यह आम तौर पर सिर्फ मेकफाइल चलाने के रूप में सरल नहीं है; उनमें से कुछ में अन्य बिल्ड स्क्रिप्ट भी हो सकती हैं जैसे कि cmake, कॉन्फ़िगर स्क्रिप्ट, आदि
jrh

2
क्या वास्तव में प्रक्रिया ज्यादातर मामलों में सरल है? गितुब उपयोगिताओं के किस अंश के लिए उन्हें यह संकलित करने के लिए बहुत अधिक ज्ञान की आवश्यकता है कि आपने यहां क्या वर्णन किया है?
गज़कम

87

आप चारों ओर देखते हैं और रिलीज़ पृष्ठ पर इंस्टॉलर को ढूंढते हैं । सुनिश्चित करें कि आप स्रोत संकलित कर सकते हैं, लेकिन मुझे नहीं लगता कि आप यही चाहते हैं।


49
माना। यदि आपको पूछना है, तो आप स्रोत से संकलन नहीं करना चाहते हैं।
वज्रपात

10
अगर आपको पूछना है, तो आपको शायद ऐसा सॉफ़्टवेयर स्थापित नहीं करना चाहिए जो केवल स्रोत रूप में उपलब्ध हो ...
jpaugh

11
मैं @jpaugh से सहमत हूँ। हालांकि यह बहुत संभव है और कभी-कभी स्रोत से निर्माण करने के लिए आवश्यक है, यह ऐसा कुछ नहीं है जिसे आप बस जा सकते हैं और पूछ सकते हैं कि "मैं एक सी प्रोग्राम कैसे बनाऊं" सामान्य तरीके से। बस बहुत अधिक विचरण है। कुछ भाग्यशाली कार्यक्रम "इन फ़ाइलों को संकलित" के रूप में सरल हैं। दूसरों को मेकअप की जरूरत होती है। कुछ को पहले डाउनलोड करने के लिए निर्भरता की आवश्यकता होती है। बिल्ड के लिए स्थापित करने की प्रक्रिया जटिल हो सकती है और जरूरी नहीं कि यह गैर-प्रोग्रामर के अनुकूल हो। इन सबसे ऊपर, हालांकि, आप प्रोजेक्ट में एक फ़ाइल ढूंढना चाहते हैं जो बताती है कि कैसे निर्माण करना है, क्योंकि बारीकियों पर निर्भर परियोजना है।
कैट

35
@jpaugh - मैं कहूंगा कि आपके पास एक निष्पादन योग्य डाउनलोड करके मैलवेयर इंस्टॉल करने का एक बेहतर मौका है - मैलवेयर शायद ही कभी खुले स्रोत है।
नेमी

3
मान लें कि आप वास्तव में भाषा पढ़ सकते हैं। मैं linux पर अर्ध नियमित रूप से सामान संकलित करता हूं और मैं किसी भी स्रोत को नहीं पढ़ / नहीं सकता। यहां तक ​​कि अगर मैं कर सकता था, मैं every.single.line की समीक्षा नहीं करने जा रहा हूं।
जर्नीमैन गीक

66

.c और .h फाइलें C स्रोत कोड हैं।

आपको विजुअल स्टूडियो, सीसीसी या कुछ इसी तरह के सी कंपाइलर को स्थापित करना होगा, प्रोजेक्ट को लोड करना होगा और फिर उसे चलाने के लिए संकलित करना होगा।

असफल होने पर, परियोजना का एक रिलीज़ पृष्ठ ( यहां ) है जो आपको समय और प्रयास को बचाने के लिए पूर्व-संकलित संस्करण तक पहुंच देगा।


14
यदि उसे इसे संकलित करना होता है, तो इसे आमतौर पर एक रीडमी में समझाया जाएगा, जिसका आप उल्लेख भी नहीं करते हैं कि उसे देखना चाहिए। वह विमोचन पृष्ठ पर जाने के लिए है, यह सिर्फ "विफल नहीं है (एक संकलक को स्थापित करना), कि वह विमोचन पृष्ठ पर जाए"
बार्लोप २१'१

3
मिंगव भी लोकप्रिय है।
ज़ैन लिंक्स

1
एक विशिष्ट परियोजना आमतौर पर संकलन उपकरण के एक विशिष्ट सेट (जिसे "टूलचैन" कहा जाता है) के साथ उपयोग करने के लिए अनुकूलित किया जाता है - एक यह जिसे आम तौर पर एक रीडमी फ़ाइल (UNIX और क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट्स में उल्लिखित किया जाता है, इसे पारंपरिक रूप से BUILD याSTSTALL कहा जाता है) । केवल कुछ जाने-माने टूलचैनों के साथ पर्यावरण के लिए स्टेलराइली प्रोजेक्ट्स, या प्रोजेक्ट्स से कम में, उपयोगकर्ता को प्रोजेक्ट फाइलों के प्रारूप और / या सामग्री से अनुमान लगाना चाहिए।
ivan_pozdeev

TCC? वास्तव में? आप गंभीर नहीं थे, क्या आप थे?
यशस

18

यह उत्तर स्रोत-केवल विंडोज एप्लिकेशन (सी में) के निर्माण के सामान्य प्रश्न को संबोधित करेगा। यदि आप ओपी की तरह भाग्यशाली हैं, तो आप पूर्वगामी बायनेरिज़ ढूंढने में सक्षम हो सकते हैं।

यहाँ ध्यान रखने वाली पहली बात यह है कि स्रोत से ऐप बनाने का कोई एक तरीका नहीं है। वहाँ विभिन्न परियोजनाओं के रूप में लगभग कई रूपांतर हैं। उन्होंने कहा, यहाँ कुछ सामान्य कदम हैं:

  1. यदि आप भाग्यशाली हैं, तो परियोजना आमतौर पर READMEफ़ाइल के भीतर निर्माण निर्देश प्रदान करेगी । कभी-कभी, कोई INSTALLफ़ाइल, या अन्य दस्तावेज़ भी उपलब्ध हो सकते हैं। यदि वे उपलब्ध हैं, तो निर्देशों का पालन करें। वे तुम्हारा सबसे अच्छा दांव हैं।

    जैसा कि दूसरों ने कहा है, दुर्भाग्य से, निर्देशों के बिना आवश्यक बिल्ड चरणों का पुनर्निर्माण करना बहुत मुश्किल है। हालांकि, हम कम से कम यहां सबसे अच्छा प्रयास कर सकते हैं, जो अधिकांश सरल परियोजनाओं के लिए काम करेगा।

  2. निर्देश को कम करना, कॉल का अगला पोर्ट यह जांचना है कि किस टूल की आवश्यकता है।

    1. यदि आपको कोई फ़ाइल एक्सटेंशन .slnया .vcxprojएक्सटेंशन के साथ मिलती है , तो यह संभवतः एक MSBuild / Visual Studio प्रोजेक्ट है। विजुअल स्टूडियो कम्युनिटी या एक्सप्रेस (C ++ के लिए) की एक प्रति डाउनलोड करें , उस प्रोजेक्ट फ़ाइल को वहाँ खोलें, और टूलबार में प्ले बटन पर क्लिक करें (या बिल्ड मेनू का उपयोग करें)।

    2. यदि आप एक पाते हैं Makefile, यह संभवतः की आवश्यकता है make। लेकिन यह वह जगह है जहाँ चीजें और भी मुश्किल हो जाती हैं, क्योंकि वहाँ बहुत सारे स्वतंत्र और असंगत सिस्टम हैं जो उपयोग करते हैं make

      1. चूंकि यह विंडोज़ की ओर लक्षित है, इसलिए यह संभवतः मिनगव का उपयोग करने वाला है । उस की एक प्रति डाउनलोड करें, अपने प्रारंभ मेनू से MSYS लॉन्च करें, cdउस निर्देशिका में नेविगेट करें ( ) जिसमें आपकी परियोजना शामिल है, और चलाएं make

      2. इसके बजाय दुर्लभ अवसर पर कि यह साइग्विन है (दुर्भाग्य से बताने का कोई आसान तरीका नहीं है, लेकिन अगर मिनगॉव ने "पॉज़िक्स" -प्रबंधित त्रुटि के साथ त्रुटियों का निर्माण किया है, तो यह एक अच्छा शर्त है), आपको इसके बजाय साइगविन को स्थापित करना होगा। दुर्भाग्य से, यह देशी विंडोज बायनेरिज़ का निर्माण नहीं करता है - आपको हर बार Cygwin के माध्यम से प्रोग्राम लॉन्च करना होगा।

    3. "बिल्ड टूल" एक कस्टम स्क्रिप्ट हो सकता है build.batया इसी तरह के नाम से । इस स्थिति में, आपको या तो इसे खोलना होगा और देखना होगा कि अंदर क्या है, या इसे चलाने का प्रयास करें और देखें कि त्रुटियां क्या हैं। यदि आप इसे खोलते हैं और इसका उल्लेख देखते हैं GCC, तो 2.2.1 पर वापस जाएं। MinGW कदम लेकिन इसके बजाय कस्टम स्क्रिप्ट चलाएँ make

  3. यह संभव है कि कोई बिल्ट टूल न हो। यदि आप सभी का सामना एक एकल .cया .cppफ़ाइल है, तो यह संभवतः इतना सरल है कि आप एक सीधा संकलन कर सकते हैं। ये फिर से, लगभग हमेशा MinGW हैं , इसलिए इसे डाउनलोड करें, MSYS शेल लॉन्च करें, निर्देशिका पर नेविगेट करें, और आवश्यक के रूप में gccया तो आह्वान करें g++- जैसेgcc -o program.exe program.c

  4. यह संभव है कि इनमें से कोई भी काम न करे। यदि आपको किसी भी कदम पर त्रुटि संदेश मिला है, तो उनके पास गायब होने का कोई सुराग हो सकता है। एक संभावना यह है कि आपको कुछ आवश्यक रूपरेखाओं या पुस्तकालयों की कमी थी - यदि आप इसे महसूस करते हैं, तो आप उन्हें डाउनलोड करने और उन्हें अपने बिल्ड वातावरण में जोड़ने का प्रयास कर सकते हैं, लेकिन यह आमतौर पर एक तुच्छ प्रक्रिया नहीं है और इसमें बहुत अधिक विविधताएं नहीं हैं। एक उत्तर में उन्हें कवर करने का तरीका।


शब्दकोष

उपकरण बनाएँ

एक बिल्ड टूल आपको बहुत कम कमांड के साथ एक प्रोजेक्ट बनाने की अनुमति देता है। एक से अधिक स्रोत फ़ाइल वाली अधिकांश परियोजनाओं के लिए, एक बिल्ड टूल कहीं न कहीं शामिल होगा। कई निर्माण उपकरण हैं, लेकिन सबसे आम हैं:

  • बनाने , लिनक्स पर हर जगह उपयोग और Windows पर तेजी से आम। उपयोग करने वाली परियोजनाओं makeको आमतौर पर ए की उपस्थिति से पहचाना जा सकता है Makefile

  • MSBuild विंडोज-विशिष्ट है और आमतौर पर विज़ुअल स्टूडियो के साथ संयोजन के रूप में देखा जाता है। ये आमतौर पर एक *.slnया *.vcxprojफ़ाइल के साथ होगा ।

toolchains

एक टूलकिन संकलक और सहायक उपकरण है। बिल्ट टूल्स की तरह, कई हैं, और वे आमतौर पर बिल्ड टूल में से एक के साथ उपयोग किए जाते हैं।

  • MSVC Microsoft का टूलचिन है। यह विंडोज देशी विकास के लिए सबसे आम टूलचिन है। यह आमतौर पर MSBuild सिस्टम के साथ प्रयोग किया जाता है, और बिल्ड आमतौर पर विज़ुअल स्टूडियो के माध्यम से बनाया जाता है। हालाँकि, आधुनिक MSVC प्रोजेक्ट भी उपयोग कर सकते हैं Makefile

  • GCC ( MinGW ) विंडोज के लिए GCC का एक पोर्ट है। आमतौर पर के साथ प्रयोग किया जाता है make। यदि परियोजना को मूल रूप से विंडोज की ओर लक्षित किया गया है और इसमें ए है Makefile, तो संभवतः यह मिनगॉव-जीसीसी के लिए है।

  • GCC ( Cygwin ) एक POSIX- संगत वातावरण बनाता है। यह आपको लिनक्स या यूनिक्स के लिए लिखे गए अधिकांश कार्यक्रमों को सीधे संकलित करने की अनुमति देता है और यह सीधे विंडोज के तहत काम करता है। हाल ही में विंडोज 10 में, विंडोज पर उबंटू पर बैश एक विकल्प है। जीसीसी आमतौर पर के साथ संयोजन के रूप में प्रयोग किया जाता है make

चौखटे और पुस्तकालय

पुस्तकालय अन्य लोगों द्वारा लिखे गए कोड के पुन: प्रयोज्य सेट होते हैं, जो कई कार्यक्रमों पर निर्भर करते हुए पहिया को फिर से लगाने से बचते हैं। प्रोजेक्ट के निर्माण के लिए आपके पास ये निर्भरताएं उपलब्ध होनी चाहिए। यदि आप भाग्यशाली हैं, तो उन्हें आपके प्रारंभिक डाउनलोड के साथ शामिल किया जाएगा, लेकिन यह हमेशा ऐसा नहीं होता है।

फ्रेमवर्क प्रभावी रूप से पुस्तकालयों का एक संग्रह है। कई प्रोजेक्ट एक फ्रेमवर्क का उपयोग करते हैं, जिसकी आपको आवश्यकता भी होगी। ये अक्सर अपने स्वयं के बिल्ड सिस्टम के साथ आते हैं, लेकिन उन सभी को सूचीबद्ध करना असंभव होगा।

सबसे कठिन हिस्सा अतिरिक्त ढांचे और पुस्तकालय निर्भरता के साथ काम कर रहा है। यदि, कहते हैं, परियोजना Qt का उपयोग करता है - तो आपको इसे ठीक से बनाने के लिए उस संपूर्ण गड़बड़ की आवश्यकता होगी। यह एक बहुत बड़ा उपक्रम है, और जब तक आपके पास पहले से अनुभव नहीं है, तब तक शायद दूसरों से सीधे मदद माँगना बेहतर है।


1
इस में विशेष मामले makefile आप एक अच्छे सुराग कि यह पहली पंक्ति के रूप MinGW के लिए है देता है MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):)
DavidPostill

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