2008-12-03 5 views
8

तो मैं अपनी पहली हैलो दुनिया prog सी मैं में लिखा ग्रहण में यह संकलित चलाने के लिए और कोई त्रुटि प्राप्त करने के लिए कोशिश कर रहा हूँ, लेकिन जब मैं इसे चलाने के लिए कोशिश मैं:सी में लिखा प्रोग्राम चलाते समय Cygwin1.dll 'नहीं मिला'। मैं इसे विंडोज कैसे ढूंढ सकता हूं?

"यह आवेदन क्योंकि शुरू में नाकाम रही है cygwin1.dll नहीं मिला था। "

मुझे this post मिला जो मुझे लगता है कि मुझे इसे विंडोज पैथ में जोड़ना चाहिए, और मैंने ऐसा करने के लिए this का उपयोग किया। तो अब मेरे पर्यावरण चर में "पथ" है; "सी: \ cygwin \ bin \ cygwin1.dll" अंत में जोड़ा गया है। अभी भी कोई काम नहीं है। किसी के पास कोई सुराग है कि मैं गलत क्या कर सकता हूं? मेरे 'कार्यक्रम' सिर्फ इस तरह दिखता है:

#include <stdio.h> 

main() 
{ 
    printf("hello, world\n"); 
} 

उत्तर

17

पथ वातावरण चर निर्देशिका युक्त cygwin1.dll, नहीं पथ ही cygwin1.dll को शामिल करने के लिए की जरूरत है। तो बस सुनिश्चित करें कि पैथ में स्ट्रिंग "C:\cygwin\bin" है।

+0

हाहा, मैंने सी: \ साइगविन की कोशिश की लेकिन सी: \ cygwin \ bin करने के लिए यह मेरे लिए नहीं हुआ। यह काम करता हैं। धन्यवाद। अब मुझे यह पता लगाने की जरूरत है कि खिड़की को आउटपुट देखने के लिए पर्याप्त समय तक कैसे रहना है। : डी –

+1

इसे कमांड लाइन से चलाएं - cmd.exe चलाएं (या, अभी तक बेहतर है, केवल सिगविन चलाएं), निष्पादन योग्य निर्देशिका पर नेविगेट करें, और कमांड लाइन से निष्पादन योग्य चलाएं। –

+2

या printf के बाद एक पढ़ें में डाल दें। – EBGreen

15

वैसे, को लागू करें, आप सिस्टम पाथ में cygwin1.dll युक्त निर्देशिका को अंधाधुंध रूप से नहीं जोड़ना चाहते हैं। मार्ग अनुक्रमिक रूप से खोजा जाता है। यदि आपके पास पथ में सिग्विन रनटाइम के पुराने या नए संस्करण होते हैं, तो cygwin1.dll के विरुद्ध जुड़े अन्य प्रोग्राम बहुत ही टूट सकते हैं (और यह पता लगाने में तुच्छ नहीं है कि जब तक आप नहीं जानते कि आप एक अलग DLL संस्करण की तलाश में हैं ।)

आपको क्या करना चाहिए, उस निर्देशिका में साइगविन 1.dll (और अन्य सिग्विन डीएलएल आपके प्रोग्राम की आवश्यकता हो सकती है) को अपनी बाइनरी रखती है, फिर अपने निष्पादन योग्य के समान नाम के साथ एक खाली (शून्य बाइट लंबाई) फ़ाइल बनाएं। .local के साथ, यानी, यदि आपका निष्पादन योग्य mytest.exe है, तो आप mytest.exe.local नाम की एक फ़ाइल बनाते हैं। यह पीई लोडर को पर पहले को उसी निर्देशिका में आवश्यक डीएलएल की तलाश करेगा जो आपके बाइनरी को रखता है, इस प्रकार बाद में बहुत सारे सिरदर्द से परहेज करता है।

0

मुझे एक ही समस्या थी ... एडम रोसेनफील्ड के जवाब ने इसे हल किया। मेरे कंप्यूटर पर पथ "C:\cygwin64\bin"

पहली बार मुझे नहीं पता था कि साइगविन का मेरा संस्करण 64 बिट है ... लेकिन यह स्पष्ट है कि पथ-चर में इन छोटे अंतर से यह तय होता है कि यह काम करेगा - या नहीं।

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