2010-06-04 14 views
8

में जीसीसी चल रहा है मैंने अपने सिस्टम पर सिग्विन स्थापित किया है। लेकिन जब मैं gcc आदेश का उपयोग करने की कोशिश यह कहते हैं:साइगविन

bash: gcc: command not found

किसी को भी मुझे, समाधान प्रदान कर सकते हैं, कृपया?

उत्तर

2

योग्य कुछ बातें:

  • मैं हमेशा पूरे Cygwin पैकेज स्थापित। पहले के संस्करणों में निर्भरता के साथ परेशानी थी जो अब तय की गई हैं, मुझे विश्वास है, लेकिन यह अभी भी एक अच्छी आदत है। आप कभी नहीं जानते कि आपको सिगविन के सबसे गूढ़ बिट की आवश्यकता हो सकती है।

  • आपको अपना रास्ता बदलना पड़ सकता है। यदि आप सिग्विन बैश खोल के अंदर चल रहे हैं तो सभी टूल आमतौर पर ठीक हो सकते हैं लेकिन यह आवश्यक नहीं है कि cmd.exe से मामला आवश्यक न हो।

यह अपने त्रुटि संदेश bash से ही आ रहा है के बाद से है कि पिछले एक होने की संभावना नहीं है, तो मैं बहुत कुछ है कि आप इसे कैसे चला रहे हैं रहा हूँ।

pax> echo $PATH 
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS 

pax> which gcc 
/usr/bin/gcc 

यदि यह वहाँ नहीं है, वापस जाने के लिए और सब कुछ फिर से स्थापित (या प्रासंगिक विकास पैकेज यदि:

सुनिश्चित करें कि आप bash के भीतर से /usr/bin/gcc है और अपना रास्ता कहीं /usr/bin शामिल है कि बनाने के लिए एक नज़र आप सबकुछ नहीं चाहते हैं)। यदि यह वहां है और आपके पथ का स्थान नहीं है, तो /etc/profile या अपने घर निर्देशिका में समकक्ष, अपना पथ बदलें।

3

ऐसा इसलिए हो सकता है क्योंकि आप कंपाइलर उपसर्ग खो रहे हैं।

डिफ़ॉल्ट रूप से अधिकांश मेकफ़ाइल gcc.exe की तलाश में जा रहे हैं। यदि आप एक अलग कंपाइलर का उपयोग कर रहे हैं, तो i686-pc-mingw32-gcc.exe कहें, तो make इसे तब तक नहीं ढूंढ पाएगा जब तक आप इसे नहीं बताते। आप

PREFIX=i686-pc-mingw32- 

make CC=${PREFIX}gcc 

Using Linux Binaries

16

मेरी स्थापना में कोई सामान्य gcc आदेश या तो नहीं था की तरह कुछ कर सकते हैं, तो मैं इसके लिए एक सिमलिंक बनाया:

cd /usr/bin 
ln -s i686-pc-cygwin-gcc-3.4.4.exe gcc 

अब जाँच अगर यह कार्य करके काम किया which gcc जो आपको /usr/bin/gcc देना चाहिए और फिर gcc आपको gcc: no input files देना चाहिए। ध्यान दें कि i686-pc-cygwin-gcc-3.4.4.exe का आपका संस्करण अलग हो सकता है। इसके लिए/usr/bin में चेक करें।

4

साइगविन की स्थापना के दौरान हो सकता है आपने जीसीसी, जीडीबी और पैकेज नहीं बनाया है। तो इस Resolving gcc command not found लिंक में दिए गए चरणों का पालन करने का प्रयास करें। आपकी समस्या हल हो सकती है।

मुझे एक ही समस्या थी और इसे उपरोक्त चरणों का उपयोग करके हल किया गया था।

+1

लिंक मर चुका है, यदि आप अभी भी उनके पास प्रासंगिक कदम उठा सकते हैं। – Nathan

0

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

लिनक्स या Cygwin खोल प्रकार ... पथ = $ पथ से अपने पथ अद्यतन करने के लिए:/your_path_here उदाहरण: पथ = $ पथ: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7 .3/include/C++ भी शामिल निर्देशिका को जोड़ने के लिए भी एक अच्छा विचार है: PATH = $ PATH: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7.3/include/ ... या अपनी स्थापना के स्थान के लिए उचित निर्देशिकाओं की जांच करें, मैं सिग्विन के साथ उपयोग के लिए mingw इंस्टॉल करने की अनुशंसा करता हूं, जो g ++ के साथ envoked है।

Cygwin में अतिरिक्त जरूरत संकुल स्थापित करने के लिए फिर से चलाने के Cygwin उपयोगिता & जांच स्थापित वेब खजाने से संकुल जोड़ सकते हैं और MinGW-जीसीसी-जी ++ & MinGW-binutils जोड़ने के लिए इंटरनेट से स्थापित करें। अपने कोड को संकलित करने के लिए: g ++ hello.cpp -o हैलो

यदि जीसीसी उपयोगिता का उपयोग करने के बजाय कमांड के साथ संकलित करें: gcc hello.cpp -o hello -lstdC++ ... अपने निष्पादन योग्य प्राप्त करने के लिए।

जब तक आपके पास या तो gcc या mingw इंस्टॉल हो और सी ++ के पथ में फ़ाइलें आपके पथ वातावरण में हों, तो आदेश काम करेंगे।

0

वहाँ गलती को पहचानना भी इस त्रुटि का कारण बन सकता है एक और मुश्किल है,

अपने Makefile PATH चर के रूप में उपयोग करता है, gcc not found त्रुटि भी हो सकता है।
ऐसा इसलिए है क्योंकि यह अस्थायी रूप से सिस्टम पथ को बदलता है।

मैंने इसे खोजने के लिए साइगविन पर्यावरण सेटिंग की जांच करने में बहुत समय लगाया, इसलिए अगर मैं यहां किसी को अपना रास्ता ढूंढने में मदद करता हूं तो मैं इसे यहां छोड़ दूंगा।

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