मान लें कि मेरे पास एक ऐसा एप्लिकेशन है जिसे मैंने साइगविन के तहत संकलित किया है, और मैं उपयोगकर्ता को साइगविन स्थापित करने के बिना उस एप्लिकेशन को वितरित करना चाहता हूं। निष्पादन योग्य और सिग्विन डीएलएल पैकेज करने के लिए पर्याप्त होगा?साइगविन में संकलित एक अनुप्रयोग चलाकर, साइगविन स्थापित किए बिना
उत्तर
आम तौर पर, हाँ। यद्यपि सिग्विन डीएलएल को सार्वजनिक स्थान पर स्थापित करना सुनिश्चित करें (विंडोज़ \ System32), यह डीएलएल बहुत बुरी तरह व्यवहार करता है जब इसके कई संस्करण एक ही मशीन पर लोड होते हैं।
[जीपीएल लिंकिंग और व्युत्पन्न वर्क्स] (http://en.wikipedia.org/wiki/GNU_General_Public_License#Linking_and_derived_works) –
सवाल लेखक कोड जारी नहीं के बारे में कुछ राज्य नहीं था। कई उपयोगिताओं एक cygwin1.dll बंडल करते हैं। ऐसा एक उदाहरण सीएनटीएमएल है: http://cntlm.sourceforge.net/। – brianegge
आप सब कुछ स्थिर के रूप में संकलित करने का प्रयास कर सकते हैं। इससे आपको libs की आवश्यकता के बिना सबकुछ चलाने की अनुमति मिलनी चाहिए (क्योंकि वे पहले से ही आपकी बाइनरी में हैं)। लेकिन इसका यह भी अर्थ होगा कि यदि साइगविन को एक अलग या नए डीएल की आवश्यकता होगी तो यह सभी प्लेटफ़ॉर्म काम नहीं कर सकता है।
यह काम नहीं करेगा: http://stackoverflow.com/questions/340696/can-you-statically-compile-a-cygwin- appplication – Hut8
क्या आपके एप्लिकेशन को वास्तव में पॉज़िक्स इम्यूलेशन प्रदान किए गए किसी भी सिगविन की आवश्यकता है? यदि नहीं, तो आप इसे -मोनो-साइगविन ध्वज के साथ संकलित कर सकते हैं और यह साइगविन पर निर्भर नहीं होगा, लेकिन मूल विंडोज एप्लिकेशन होगा। अक्सर, आपको केवल अपने एप्लिकेशन को कॉन्फ़िगर करने और बनाने के लिए एक असली खोल (बैश) की आवश्यकता होती है, लेकिन आपको वास्तव में सिगविन की पॉज़िक्स कार्यक्षमता की आवश्यकता नहीं होती है।
एक और विकल्प MSYS + MinGW है, जो सिग्विन का एक हल्का वजन का कांटा है। यह एक संकलन वातावरण प्रदान करता है जो डिफ़ॉल्ट रूप से देशी विंडोज ऐप्स उत्पन्न करता है।
एक तीसरा विकल्प सिगविन से ही मिनजीडब्ल्यू कंपाइलर्स का उपयोग करना होगा। वे सामान्य सिग्विन पैकेज मैनेजर के माध्यम से उपलब्ध होना चाहिए। फिर आप MinGW कंपाइलर्स का उपयोग कर क्रॉस-कंपाइल के लिए प्रोजेक्ट को कॉन्फ़िगर करेंगे।
एमएसवाईएस साइगविन का कांटा नहीं है। –
http://www.mingw.org/history http://en.wikipedia.org/wiki/MinGW#Comparison_with_Cygwin इसके अतिरिक्त, मिनजीडब्ल्यू मेलिंग सूची में मुख्य लोग अक्सर कहते हैं कि मिनजीडब्ल्यू/एमएसवाईएस एक कांटा है सिगविन का। –
मिनजीडब्ल्यू एमएसवाईएस –
चीजें बदल गई हैं। सिगविन पुस्तकालय अब कम जीपीएल (v3) के तहत हैं, जिससे उन्हें उन अनुप्रयोगों के साथ बंडल करना संभव हो जाता है जो एफओएसएस से स्वामित्व तक लाइसेंस की विस्तृत श्रृंखला के अंतर्गत आते हैं।
इस बात का क्या अर्थ है कि सिग्विन में POSIX अनुकरण मूल विंडोज अनुप्रयोगों के परिप्रेक्ष्य से चीजों को बहुत दूर ले जाता है।
यह जहाँ मेरे Cygnal परियोजना में आता है Cygnal Cygwin मूल निवासी आवेदन लाइब्रेरी के लिए खड़ा है:। यह है एक ड्रॉप में जो परिवर्तन, या कुछ मामलों में बस फिर से कॉन्फ़िगर, कुछ कार्यक्षमता के व्यवहार क्रम में Cygwin की संगत कांटा विंडोज प्लेटफार्म के देशी सम्मेलनों के अनुरूप है।
एक मूल "हैलो, वर्ल्ड" सिगविन कार्यक्रम के लिए दो पुस्तकालयों की आवश्यकता होती है। एक जीसीसी रन-टाइम cyggcc_s-1.dll
और सिग्विन डीएलएल cygwin1.dll
कहा जाता है। Cygnal परियोजना उत्तरार्द्ध के लिए एक प्रतिस्थापन प्रदान करता है। (डाउनलोड के लिए एक 32 बिट बिल्ड उपलब्ध है)।
दुनिया और विंडोज के सिग्विन पॉज़िक्स दृश्य के बीच असंगतता का एक चमकदार क्षेत्र पथ प्रबंधन है। फाइल सिस्टम का सिग्विन दृश्य नकली /
रूट निर्देशिका, और इसकी अपनी आंतरिक "माउंट टेबल" के माध्यम से है जो /cygdrive
, /proc
और /dev
जैसे रिक्त स्थान प्रदान करता है। सिगनल उस सब से दूर है। पथ Win32 पथ हैं। वर्तमान कार्यशील निर्देशिका विंडोज वर्तमान कार्यशील निर्देशिका की तरह व्यवहार करती है। ड्राइव वर्तमान निर्देशिकाओं से जुड़े हुए हैं, और साइगनल के तहत D:foo.txt
काम जैसे सापेक्ष पथ ड्राइव करते हैं। सिग्नल के तहत, /dev
और /proc
अभी भी उपलब्ध हैं: उन्हें विशेष उपसर्ग dev:/
और proc:/
के रूप में उपयोग किया जाता है। इसमें chdir
की अनुमति नहीं है: यह मूल नहीं होगा! सिगनल के तहत, यदि आप chdir
से D:\wherever
तो आपका वर्तमान ड्राइव D
ड्राइव है, और /foo
या \foo
पथ D:\foo
देखें।सिगविन का मास्टर पॉज़िक्स रूट निर्देशिका चला गया है।
फिर भी, सिगनल के साथ, आप पीओएसआईक्स कार्यक्षमता का उपयोग करना जारी रख सकते हैं, जिससे प्लेटफॉर्म पर आधारित स्विच कम हो सकता है, जो कि मिनीजीडब्लू या माइक्रोसॉफ्ट विजुअल सी/सी ++।
उदाहरण के लिए: आप VT100 कोड और termios
का उपयोग कर एक Win32 कंसोल एप्लिकेशन लिख सकते हैं। यूनिक्स पर एक ही कोड चलाएगा। POSIX सिस्टम पर Windows और VT100/termios
पर Win32 कंसोल API का उपयोग करने की आवश्यकता नहीं है।
एक और उदाहरण: थ्रेडिंग के लिए, आप बस POSIX धागे का उपयोग कर सकते हैं। pthread_create
एक थ्रेड शुरू करने के लिए, pthread_mutex_lock
एक mutex को लॉक करने के लिए और इसी तरह। आपके प्रोग्राम को थ्रेड के लिए पोर्टेबिलिटी अबास्ट्रक्शन की आवश्यकता नहीं है जो Win32 या POSIX में अनुवाद करता है; आप बस POSIX का उपयोग करें और यही वह है।
Cygnal में uname
समारोह के बजाय एक CYGNAL
उपसर्ग CYGWIN
साथ sysname
रिपोर्ट। इसके माध्यम से, आपका प्रोग्राम बता सकता है कि यह सिगविन (या किसी अन्य POSIX प्लेटफ़ॉर्म) की बजाय सिगनल पर चल रहा है। इस प्रकार आप कोई आवश्यक समायोजन कर सकते हैं: उदाहरण के लिए, यदि आपके प्रोग्राम को /dev/null
की आवश्यकता है, तो सिग्नल पर यह dev:/null
इसके बजाय देख सकता है।
- 1. सेटअप स्टैंडअलोन साइगविन अनुप्रयोग
- 2. साइगविन
- 3. साइगविन
- 4. साइगविन
- 5. साइगविन
- 6. साइगविन
- 7. साइगविन
- 8. साइगविन
- 9. साइगविन
- 10. साइगविन
- 11. साइगविन
- 12. पायथन स्थापित करें और साइगविन
- 13. साइगविन इंस्टॉलेशन
- 14. साइगविन + rsync
- 15. pkg-config साइगविन
- 16. visualvm साइगविन
- 17. साइगविन/विस्टा
- 18. एसएसएच एजेंट अब साइगविन
- 19. । साइगविन में bashrc 1.7
- 20. साइगविन एसएसएच नहीं पुटी हाँ?
- 21. एनडीके-साइगविन पथ विशिष्ट मुद्दों
- 22. साइगविन के तहत vim प्लगइन कैसे स्थापित करें?
- 23. साइगविन के साथ सेमेक चलाने में विफल
- 24. सरल मानचित्र चलने में समस्याएं- साइगविन
- 25. साइगविन/बाश उपनाम में रिक्त स्थान?
- 26. साइगविन से विंडोज़ जीवीआईएम कैसे चलाएं?
- 27. विंडोज डेस्कटॉप से साइगविन एसएसएच शॉर्टकट
- 28. क्या साइगविन के लिए जावा एसडीके है?
- 29. साइगविन में psql कमांड कैसे सेट अप करें?
- 30. क्या आप एक साइगविन एप्लिकेशन को स्थिर रूप से संकलित कर सकते हैं?
साइगविन डीएलएल जीपीएलएड है, इसलिए आपको अपने ऐप के स्रोत को भी वितरित करना होगा। –
लेकिन आप सिगविन के लिए एक वाणिज्यिक लाइसेंस खरीद सकते हैं। –
कृपया विस्तृत करें - क्योंकि उत्तर में दो प्रकार की व्याख्या प्रतीत होती है। क्या आपका मतलब यह तकनीकी रूप से है (जो * अन्य * फ़ाइलों को मुझे वितरित करने की आवश्यकता है), या कानूनी रूप से (लाइसेंस मुझे क्या करने की अनुमति देता है)? – Wim