GCC घातक त्रुटि: stdio.h: ऐसी कोई फ़ाइल या निर्देशिका नहीं


90

मैं GCC 4.9 (प्रयोगात्मक) के साथ OS X 10.9 पर C में एक कार्यक्रम संकलित करने की कोशिश कर रहा हूं। किसी कारण से, मुझे संकलन समय पर निम्न त्रुटि मिल रही है:

gcc: fatal error: stdio.h: No such file or directory

मैंने तब एक सरल हैलो वर्ल्ड प्रोग्राम की कोशिश की:

#include <stdio.h>

int main(int argc, const char *argv[])
{
    printf("Hello, world!");
    return 0;
}

फिर से, दौड़ने पर gcc -o ~/hello ~/hello.c, मुझे वही त्रुटि मिली। मैं एक प्रायोगिक संस्करण का उपयोग कर रहा हूं gcc, लेकिन यह अनुमान लगाने योग्य है कि एक रिलीज होगी जो आयात करने में त्रुटियां उत्पन्न करती है stdio। इस मुद्दे के कारण क्या हो सकता है, और यह कैसे तय किया जा सकता है?


11
आप देख सकते हैं echo "#include <bogus.h>" | gcc -v -x c -कि खोज पथों की जाँच और परीक्षण करके शीर्ष लेख फ़ाइलों के लिए कहाँ देख रहा है।
क्रिश्चियन टेरनस

1
बहुत उपयोगी कमांड! ऐसा नहीं लगता है कि stdio.hGCC के किसी भी खोज पथ में है।
जूल्स

2
मावेरिक्स में अब आधार / यूएसआर / शामिल नहीं है। आपको इसे XCode OS 10.9 SDK से लिंक करने की आवश्यकता है।
यन रामिन

3
BTW, int mainका पहला पैरामीटर एक int है और int * argc नहीं है।
p0lAris

3
@ user2615799 में इसकीsudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
यान रामीन

जवाबों:


141

मैक ओएस एक्स

मुझे भी यह समस्या थी (Macports कंपाइलर के माध्यम से)। Xcode के पिछले संस्करण आपको xcode / Preferences के माध्यम से कमांड लाइन टूल इंस्टॉल करने देंगे, लेकिन xcode5 GUI में कमांड लाइन टूल विकल्प नहीं देता है, इसलिए मैंने मान लिया कि यह स्वचालित रूप से अब शामिल है। इस आदेश को चलाने का प्रयास करें:

xcode-select --install

उबंटू

(इस उत्तर के अनुसार )

sudo apt-get install libc6-dev

अल्पाइन लिनक्स

(इस टिप्पणी के अनुसार )

apk add libc-dev

यदि आप Xcode 6 बीटा 5 का उपयोग कर रहे हैं, तो यह आदेश विफल हो सकता है। उस मामले में आपको करने की आवश्यकता है sudo xcode-select -s /Applications/Xcode.app। जब आप काम पूरा कर लें, तो वापस स्विच कर लें sudo xcode-select -s /Applications/Xcode6-Beta5.app
सोजर्स प्रोवोस्ट

1
वाह। अभी भी Xcode 8.0 और सिएरा के साथ 2017 में काम कर रहा है।
user124384

1
अल्पाइन गाइड, अल्पाइन डिस्ट्रो पर आधारित
डॉकरों की

विंडोज़ उपयोगकर्ताओं के लिए कोई सुझाव? मुझे खिड़कियों पर यह समस्या है
रतुल हसन

1
MacOS उपयोगकर्ताओं को, जो अभी भी CLTs स्थापित करने के बाद समस्या हो रही है के लिए stackoverflow.com/questions/63342521/...
anki

46

मैक ओएस Mojave

स्वीकृत उत्तर अब काम नहीं करता है। कमांड चलाते समयxcode-select --install यह आपको अपडेट को स्थापित करने के लिए "सॉफ़्टवेयर अपडेट" का उपयोग करने के लिए कहता है।

इसी कड़ी में में अद्यतन विधि है:

एक टर्मिनल खोलें और फिर:

cd /Library/Developer/CommandLineTools/Packages/
open macOS_SDK_headers_for_macOS_10.14.pkg

यह एक इंस्टॉलेशन विज़ार्ड खोलेगा।

अपडेट 12/2019

Mojave 10.15.1 में अद्यतन करने के बाद ऐसा लगता है कि xcode-select --installइरादा के अनुसार काम करता है।


Xcode 10.2 में अपग्रेड करते समय हेडर को फिर से इंस्टॉल करना भी काम करता है।
बोजन डिमोव्स्की

जब मैं macOS_SDK_headers_for_macOS_10.14.pkg खोलता हूं, तो मुझे इंस्टॉलर से एक डरावना चेतावनी मिलती है: "यह पैकेज macOS के इस संस्करण के साथ असंगत है और इंस्टॉल करने में विफल हो सकता है।" मेरे पास मोजवे है।
स्टीव सिएगेल

@SteveSiegel मैक ओएस संस्करण क्या चल रहा है? मैंने 10.15.1 पर अपग्रेड किया और मुझे अब यह वर्कअराउंड नहीं करना था। यह दर्शाने के लिए मेरे उत्तर को अपडेट किया।
समशेल

"Mojave 10.15.1 को अद्यतन करना" गलत है। @SteveSiegel pkg को हटा दिया गया है। SDKROOT का उपयोग किया जाना चाहिए। stackoverflow.com/a/63343829/10063119
aki

23

ubuntu उपयोगकर्ता:

sudo apt-get install libc6-dev

विशेष रूप से रूबी डेवलपर्स जिन्हें gem install json -v '1.8.2'अपने वीएम पर स्थापित करने में समस्या है


1
दिलचस्प। धन्यवाद। यह परिवाद कुछ अन्य मुद्दों को भी हल करता है। हाल ही में, मैंने इसे petabyet.com (जिसमें gcc का उपयोग करता है) के लिए एक बेंचमार्क चलाने की कोशिश का सामना किया।
ढपिन

14
अल्पाइन लाइनक्स पर मुझे जरूरत हैapk add libc-dev
shadi

3

मुझे भी यही समस्या थी। मैंने ऐप स्टोर से "XCode: डेवलपमेंट टूल्स" स्थापित किया और इसने मेरे लिए समस्या को ठीक कर दिया।

मुझे लगता है कि यह लिंक मदद करेगा: https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ls=1

उनकी सलाह के लिए यान रामिन को श्रेय। मुझे लगता है कि लिंक के साथ एक बेहतर समाधान है, लेकिन यह आसान और तेज़ था।

सौभाग्य!


क्या आप सिर्फ सामान्य Xcode की बात कर रहे हैं? या क्या कुछ विशेष संस्करण "एक्सकोड: विकास उपकरण" कहा जाता है? क्योंकि मैं केवल ऐप स्टोर में सामान्य Xcode देखता हूं। दी गई, जब यह उत्तर पोस्ट किया गया था तब से यह भविष्य में 4 साल का है।
user124384

1

मुझे पता है कि मेरा मामला दुर्लभ है, लेकिन मैं अभी भी इसे किसी ऐसे व्यक्ति के लिए जोड़ूंगा जो बाद में इसका निवारण करता है। मेरे मेकफाइल में मेरे पास एक लिनक्स कर्नेल मॉड्यूल लक्ष्य था और मैंने कर्नेल मॉड्यूल के साथ एक साथ अपने उपयोगकर्ता अंतरिक्ष कार्यक्रम को संकलित करने की कोशिश की, जिसमें stdio नहीं है। इसे एक अलग लक्ष्य बनाने से समस्या हल हो गई।

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