Mojave में अपग्रेड के बाद Mac पर C प्रोग्राम संकलित नहीं कर सकते


159

मैंने सी कार्यक्रमों को संकलित करने के लिए टर्मिनल पर gcc कमांड का उपयोग किया है, लेकिन अचानक मेरे मैक के ओएस (macOS 10.14 मोजावे और XCode 10.0) के अपडेट के बाद, मुझे संदेश मिलना शुरू हुआ:

test.c:8:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
         ^~~~~~~~~
compilation terminated.

मेरे पास पहले से ही gcc स्थापित है क्योंकि मैं इसे पा सकता हूँ /usr/local/binऔर वास्तव में वहाँ एक gcc है। मैंने अपने दूसरे iMac पर एक ही फाइल चलाने की कोशिश की और यह बिना किसी समस्या के काम किया।

मैंने दौड़ने की कोशिश की xcode-select --installऔर यह पहले से ही स्थापित था, इसलिए इसने उस समस्या को ठीक नहीं किया जो मैं अब कर रहा हूं। मुझे लग रहा है कि रास्ता गड़बड़ हो गया है क्योंकि ऐसा नहीं लगता है कि gccइस समस्या को हल करने के लिए मैं अन्य संसाधनों से कुछ आदेशों को कॉपी और पेस्ट करना शुरू कर सकता हूं।

इस पर कुछ मदद चाहते हैं।


5
आप का उपयोग करके gcc के खोज पथ देख सकते हैंecho "#include <a.h>" | gcc -v -x c -
मैट

2
बहुत बार, xocde-select --installसही समाधान है। आपने किस ओ / एस को अपग्रेड किया? मोजवे 10.14? आपने कौन सा XCode स्थापित किया है? 10.0 या कोई अन्य संस्करण?
जोनाथन लेफ्लर

39
@JonathanLeffler मुझे एक रास्ता मिल गया है। यदि हम XCode 10 का उपयोग कर रहे हैं, तो आप देखेंगे कि यदि आप खोजक में / usr पर नेविगेट करते हैं, तो आपको 'फोल्डर' नामक एक फ़ोल्डर दिखाई नहीं देगा, यही वजह है कि टर्मिनल हेडर फ़ाइलों की अनुपस्थिति की शिकायत करता है जो कि अंदर निहित है 'शामिल' फ़ोल्डर। इस विमोचन विवरण में, डेवलपर .apple.com/documentation/xcode_release_notes/… (आप /Library/Developer/CommandLineTools/Packages/macOS_SDK_ders_for_macOS_10.14.pkg पर नेविगेट करें और उस फ़ोल्डर को स्थापित करने के लिए पैकेज शामिल करें)। तब आपको जाना अच्छा होना चाहिए।
अधिकतम XXX

1
जब बाकी सब विफल हो जाए, तो मैनुअल पढ़ें! या जारी नोट। मुझे डर नहीं लग रहा है कि Apple को यूनिक्स विरासत से मुंह मोड़ना है। मैं निराश हूँ। यदि वे सावधान रहें, तो वे मुझे भगा सकते हैं। जानकारी के लिए धन्यवाद; मैं बाद में इसके साथ प्रयोग करूंगा (कुछ घंटों की आंख बंद करके)।
जोनाथन लेफलर

16
पैकेज ( open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgकमांड लाइन पर) स्थापित करने के बाद , मेरे पास /usr/includeफिर से है, और मेरा जीसीसी 8.2.0 एक बार फिर काम करता है। सूचक के लिए धन्यवाद; इसे खोजने पर अच्छा किया। मेरा सुझाव है कि आप उत्तर लिखें क्योंकि समस्या में चल रहे अन्य लोग शायद होंगे।
जोनाथन लेफ्लर

जवाबों:


264

टी एल; डॉ

सुनिश्चित करें कि आपने नवीनतम 'कमांड लाइन टूल' पैकेज डाउनलोड किया है और इसे टर्मिनल (कमांड लाइन) से चलाया है:

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

कैटालिना के बारे में कुछ जानकारी के लिए, कैटालिना को 10.15 में अपग्रेड करने के बाद एक मैक पर एक सी प्रोग्राम संकलित नहीं कर सकते


बल्कि व्यापक टिप्पणियों से एक अर्ध-सुसंगत उत्तर निकालना ...

प्रस्तावना

बहुत बार, xcode-select --installसही समाधान किया गया है, लेकिन यह इस समय मदद नहीं करता है। क्या आपने मुख्य Xcode GUI इंटरफ़ेस चलाने की कोशिश की है? यह आपके लिए कुछ अतिरिक्त सॉफ़्टवेयर स्थापित कर सकता है और सफाई कर सकता है। मैंने ऐसा Xcode 10.0 स्थापित करने के बाद किया था, लेकिन एक सप्ताह या उससे अधिक समय पहले, Mojave में अपग्रेड करने से बहुत पहले।

मैं देखता हूं कि यदि आपका GCC स्थापित है /usr/local/bin, तो आप शायद Xcode से GCC का उपयोग नहीं कर रहे हैं; यह सामान्य रूप से स्थापित है /usr/bin

मैंने भी macOS 10.14 Mojave और Xcode 10.0 में अपडेट किया है। हालांकि, सिस्टम /usr/bin/gccऔर सिस्टम दोनों /usr/bin/clangमेरे लिए काम कर रहे हैं ( Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0दोनों के लिए।) मुझे अपने घर-निर्मित जीसीसी 8.2.0 में हेडर नहीं ढूंढने में /usr/includeसमस्या है, जो /usr/local/bin/gccहेडर नहीं ढूंढने के साथ आपकी समस्या के समानांतर है ।

मैंने थोड़ी तुलना की है, और मेरी मोजाव मशीन /usr/includeमें बिल्कुल भी नहीं /usr/bin/clangहै , फिर भी ठीक संकलन करने में सक्षम है। एक हेडर ( _stdio.h, प्रमुख अंडरस्कोर के साथ) मेरे पुराने में था /usr/include; यह अब गायब है (इसलिए जीसीसी 8.2.0 के साथ मेरी समस्या)। मैं भागा xcode-select --installऔर उसने कहा " xcode-select: note: install requested for command line developer tools" और फिर एक GUI इंस्टॉलर चला, जिसने मुझे एक लाइसेंस दिखाया, जिसके लिए मैं सहमत हो गया, और उसने कमांड लाइन टूल डाउनलोड किया और इंस्टॉल किया - या ऐसा दावा किया।

मैंने फिर Xcode GUI (कमांड-स्पेस, Xcode, रिटर्न) चलाया और यह कहा कि इसे कुछ और सॉफ़्टवेयर इंस्टॉल करने की आवश्यकता है, लेकिन फिर भी नहीं /usr/include। लेकिन मैं /usr/bin/clangऔर के साथ संकलन कर सकता हूं /usr/bin/gcc- और -vविकल्प बताता है कि वे उपयोग कर रहे हैं

InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

काम करने का उपाय

तब Maxxx ने उल्लेख किया :

मुझे एक रास्ता मिल गया है। यदि हम Xcode 10 का उपयोग कर रहे हैं, तो आप देखेंगे कि यदि आप /usrखोजक में नेविगेट करते हैं , तो आपको 'फोल्डर' नामक कोई भी फ़ोल्डर दिखाई नहीं देगा, यही कारण है कि टर्मिनल हेडर फ़ाइलों की अनुपस्थिति की शिकायत करता है जो अंदर निहित है 'शामिल' फ़ोल्डर। में Xcode 10.0 रिलीज नोट्स , यह कहता है कि एक पैकेज है:

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

और आपको उस पैकेज को /usr/includeफ़ोल्डर स्थापित करने के लिए स्थापित करना चाहिए । तब आपको जाना अच्छा होना चाहिए।

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

कमांड लाइन पर निम्नलिखित कमांड का उपयोग करके पैकेज स्थापित करने के बाद, मेरे पास /usr/includeफिर से है, और मेरा जीसीसी 8.2.0 एक बार फिर काम करता है।

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

कमांड लाइन टूल डाउनलोड करना

जैसा कि वेसल एक बहुमूल्य टिप्पणी में बताते हैं , आपको मोजेज 10.14 पर Xcode 10.1 के लिए कमांड लाइन टूल पैकेज डाउनलोड करने की आवश्यकता है, और आप ऐसा कर सकते हैं:

डाउनलोड प्राप्त करने में सक्षम होने के लिए आपको एक Apple ID के साथ लॉगिन करना होगा। जब आपने डाउनलोड कर लिया है, तो कमांड लाइन टूल पैकेज स्थापित करें। फिर अनुभाग 'वर्किंग सॉल्यूशन' में वर्णित हेडर को स्थापित करें।

यह मेरे लिए Mojave 10.14.1 पर काम किया। मैंने इसे पहले डाउनलोड कर लिया होगा, लेकिन जब तक मैं इस प्रश्न का उत्तर दे रहा था, तब तक मैं भूल चुका था।

Mojave 10.14.4 और Xcode 10.2 पर अपग्रेड करें

2019-05-17 को या इसके बाद, मैंने Mojave 10.14.4 को अपडेट किया, और Xcode 10.2 कमांड लाइन टूल भी अपग्रेड किए गए (या Xcode 10.1 कमांड लाइन टूल 10.2 में अपग्रेड किए गए)। openआदेश दिखाया ऊपर लापता हेडर तय की। मुख्य Xcode को 10.2 में अपग्रेड करने के साथ आने के लिए अभी भी रोमांच हो सकता है और फिर कमांड लाइन टूल और हेडर पैकेज को फिर से इंस्टॉल करना है।

Xcode 10.3 पर अपग्रेड करें (Mojave 10.14.6 के लिए)

2019-07-22 को, मुझे ऐप स्टोर के माध्यम से सूचना मिली कि Xcode 10.3 में अपग्रेड उपलब्ध है और इसमें iOS 12.4, tvOS 12.4, watchOS 5.3 और macOS Mojave 10.14.6 के लिए SDKs शामिल हैं। मैंने इसे अपनी 10.14.5 मशीनों में से एक में स्थापित किया, और इसे चलाया, और अतिरिक्त घटकों को स्थापित किया जैसा कि यह सुझाव दिया गया था, और ऐसा लगता है कि यह /usr/includeबरकरार है।

उसी दिन बाद में, मुझे पता चला कि MacOS Mojave 10.14.6 भी उपलब्ध था (सिस्टम प्राथमिकताएँ Update सॉफ़्टवेयर अपडेट), कमांड लाइन यूटिलिटीज़ पैकेज IIRC के साथ (यह स्वचालित रूप से डाउनलोड और इंस्टॉल किया गया था)। ओ / एस अपडेट को स्थापित करते हुए, एक बार और, मिटा दें /usr/include, लेकिन openउत्तर के शीर्ष पर स्थित कमांड ने इसे फिर से बहाल कर दिया। मेरे पास openकमांड के लिए फाइल पर तारीख 2019-07-15 थी।

XCode 11.0 (कैटालिना 10.15 के लिए) में अपग्रेड करें

XCode 11.0 के उन्नयन ("iOS 13 के लिए स्विफ्ट 5.1 और एसडीके शामिल हैं, टीवीओएस 13, वॉचओएस 6 और मैकओएस कैटलिना 10.15") 2019-09-21 जारी किया गया था। मुझे 'अपडेट उपलब्ध' के बारे में सूचित किया गया था, और बिना किसी समस्या के, ऐप स्टोर ऐप (अपडेट टैब) के माध्यम से मैकओएस मोजेज 10.14.6 पर चलने वाली मशीनों पर इसे डाउनलोड और इंस्टॉल किया गया, और इसके साथ फ्यूज़ किए बिना /usr/include। स्थापना के तुरंत बाद (स्वयं एप्लिकेशन को चलाने से पहले), मैंने एक पुनः प्रयास किया और बताया गया:

Xcode / iOS लाइसेंस के लिए सहमत होने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता होती है, कृपया "sudo xcodebuild -license" चलाएं और फिर इस कमांड को पुनः प्रयास करें।

उस ( sudo xcodebuild -license) को चलाने से मुझे कंपाइलर चलाने की अनुमति मिली। तब से, मैंने एप्लिकेशन को अतिरिक्त घटकों को स्थापित करने के लिए चलाया है, जिनकी ज़रूरत है; अभी भी कोई समस्या नहीं है। यह देखा जाना चाहिए कि जब मैं कैटालिना में अपग्रेड करता हूं तो क्या होता है - लेकिन मेरे macOS Mojave 10.14.6 मशीनें फिलहाल (2019-09-24) दोनों ठीक हैं।


4
यह लिखने के लिए धन्यवाद। बहुत सराहना की। चीयर्स!
मैक्सएक्सएक्स

6
मेरे लिए इसे हल किया !!! यह लिखने के लिए समय निकालने के लिए बहुत बहुत धन्यवाद!
budekatude

8
Grump !!! 10.14.1 अपडेट के साथ चीजें फिर से बदल गई हैं - या, कम से कम, वे फिर से बदल गए हैं। मेरे लिए, ऐसा लगता है कि ओ / एस अपडेट ने उड़ा दिया/usr/include, और उपरोक्त उत्तर में सूचीबद्ध पैकेज में मौजूद नहीं है/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgऔरxcode-select --installकहते हैं किवर्तमान मेंकमांड लाइन टूल उपलब्ध नहीं हैं।
जोनाथन लेफलर

15
फोल्डिंग एप्पल। वे केवल उन चीजों को नहीं छोड़ सकते हैं जो काम करते हैं, उन्हें चीजों को स्थानांतरित करना, कदम जोड़ना और मंथन करना है।

7
इस उम्मीद में कि खोज इंजनों को यह उत्तर मिल जाएगा, उपरोक्त निर्देशों ने fatal error: bits/ctype_base.h: No such file or directory: #include <bits/ctype_base.h>मेरे लिए Mojave पर libstdc ++ का उपयोग करते हुए GCC 7.4.0 का संकलन करते समय हल किया
एडम लिंडबर्ग

30

हर उत्तर की कोशिश करने के बाद मैं यहाँ और ऑनलाइन पा सकता था, मुझे अभी भी कुछ लापता हेडर के लिए त्रुटियाँ हो रही थीं। जब pyRFR को संकलित करने की कोशिश की जा रही थी, तो मुझे stdexceptनहीं मिलने के बारे में त्रुटियां हो रही थीं , जो स्पष्ट रूप /usr/includeसे अन्य हेडर के साथ स्थापित नहीं थी । हालाँकि, मैंने पाया कि यह मोजावे में कहाँ छिपा था और इसे अपनी ~/.bash_profileफ़ाइल के अंत में जोड़ा :

export CPATH=/Library/Developer/CommandLineTools/usr/include/c++/v1

ऐसा करने के बाद, मैं अब pyRFR और अन्य C / C ++ प्रोग्राम संकलित कर सकता हूं। echo | gcc -E -Wp,-v -Gcc के अनुसार , इन हेडर (बिना /c++/v1) के लिए gcc पुराने स्थान में दिख रहा था , लेकिन नया स्थान नहीं, इसलिए इसे CFLAGS में शामिल किया गया।


कुछ भी काम नहीं किया, लेकिन इस एक ने किया। आपका बहुत बहुत धन्यवाद!!
फेलिक्स

2
विकीडिकब्रॉथन
डेविस

23

जब आप

  • को अपडेट किया गया Mojave 10.14.6
  • आपका /usr/includeफिर से हटा दिया गया था
  • @ जोनाथन-लेफर्स उत्तर में उल्लिखित पैकेज अब मौजूद नहीं है The file /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg does not exist.और
  • Xcode शिकायत करता है कि कमांड लाइन टूल पहले से इंस्टॉल हैं xcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates

फिर, मुझे उल्लेखित पैकेज को पुनर्प्राप्त करने में क्या मदद मिली, पूरे CommandLineToolsफ़ोल्डर को हटा रहा था (sudo) rm -rf /Library/Developer/CommandLineToolsऔर इसे पुनर्स्थापित कर रहा था xcode-select --install


अति उत्कृष्ट! आपके चरणों के बाद, macOS_SDK_headers_for_macOS_10.14.pkgउपलब्ध हो जाओ, और कमांड open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgने वही किया जो करना चाहिए था। बहुत - बहुत धन्यवाद!!
ब्रूनो एम्ब्रोजियो

3
मेरे लिए, निम्नलिखित ने काम किया: export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
रब्बर

धन्यवाद! मैं फंस गया था, लेकिन यह वास्तव में Mojave 10.4.6 और XCode 11.3.1 के साथ मेरे लिए काम किया
शिमोन जी

हर बार Apple ने एक सिस्टम अपडेट जारी किया मुझे इस समस्या को अलग तरीके से Clion के साथ ठीक करना है।
आइगोनजैक

12

समस्या यह है कि Xcode, विशेष रूप से Xcode 10.x, ने सब कुछ स्थापित नहीं किया है, इसलिए सुनिश्चित करें कि कमांड लाइन उपकरण स्थापित हैं, इसे टर्मिनल शेल में टाइप करें:

xcode- चयन - स्थापना

Xcode भी शुरू करें और यह सुनिश्चित करें कि सभी आवश्यक इंस्टॉलेशन स्थापित हैं (यदि आपको नहीं है तो आपको संकेत दिया जाना चाहिए।) और चूंकि Xcode 10 पूर्ण मैक ओएस एसडीके स्थापित नहीं करता है, इसलिए इंस्टॉलर को चलाएं

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

के रूप में इस पैकेज Xcode 10 द्वारा स्थापित नहीं है।


1
इससे मैं बच गया। आपका बहुत बहुत धन्यवाद!
डेम वियर


5

नोट: मैकोस कैटालिना 10.15 के स्विच / सामान्य उपलब्धता से पहले निम्नलिखित अत्यधिक प्रासंगिक और समय-सीमित होने की संभावना है। नया लैपटॉप। मैं यह अक्टूबर 1, 2019 लिख रहा हूं।

ये विशिष्ट परिस्थितियां हैं, मेरा मानना ​​है कि किस वजह से मेरे लिए समस्याएं पैदा हुईं। वे अधिकांश अन्य मामलों में लागू नहीं हो सकते हैं।

प्रसंग:

  • macos 10.14.6 Mojave, Xcode 11.0, Macos Catalina 10.15 के लॉन्च से ठीक पहले । नई खरीदी मैकबुक प्रो।

  • विफलता pip install psycopg2, जो, मूल रूप से, पायथन पैकेज स्रोत से संकलित हो रही है।

  • मैंने पहले ही यहां दिए गए उत्तरों में कई सुझाए गए समायोजन कर लिए हैं।

मेरी त्रुटियां:

pip install psycopg2
Collecting psycopg2
  Using cached https://files.pythonhosted.org/packages/5c/1c/6997288da181277a0c29bc39a5f9143ff20b8c99f2a7d059cfb55163e165/psycopg2-2.8.3.tar.gz
Installing collected packages: psycopg2
  Running setup.py install for psycopg2 ... error
    ERROR: Command errored out with exit status 1:
     command: xxxx/venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/bk/_1cwm6dj3h1c0ptrhvr2v7dc0000gs/T/pip-install-z0qca56g/psycopg2/setup.py'"'"'; __file__='"'"'/private/var/folders/bk/_1cwm6dj3h1c0ptrhvr2v7dc0000gs/T/pip-install-z0qca56g/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/bk/_1cwm6dj3h1c0ptrhvr2v7dc0000gs/T/pip-record-ef126d8d/install-record.txt --single-version-externally-managed --compile --install-headers xxx/venv/include/site/python3.6/psycopg2


...
/usr/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -pipe -Os -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -DPSYCOPG_VERSION=2.8.3 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=90615 -DHAVE_LO64=1 -I/Users/jluc/kds2/py2/venv/include -I/opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -I. -I/opt/local/include/postgresql96 -I/opt/local/include/postgresql96/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.14-x86_64-3.6/psycopg/psycopgmodule.o

    clang: warning: no such sysroot directory: 
'/Applications/Xcode.app/Contents/Developer/Platforms
                              ❌👇the real error👇❌
/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk' [-Wmissing-sysroot]
    In file included from psycopg/psycopgmodule.c:27:
    In file included from ./psycopg/psycopg.h:34:
    /opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m/Python.h:25:10: fatal error: 'stdio.h' file not found
                             ❌👆 what I thought was the error 👆❌
    #include <stdio.h>
             ^~~~~~~~~
    1 error generated.

    It appears you are missing some prerequisite to build the package 

मैंने अब तक क्या किया, बिना कुछ ठीक किए:

  • xcode-select --install
  • xcode स्थापित किया
  • open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

फिर भी stdio.h पर वही त्रुटि।

जो कई स्थानों पर मौजूद है:

(venv) jluc@bemyerp$ mdfind -name stdio.h
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/usr/include/_stdio.h
/usr/include/secure/_stdio.h
/usr/include/stdio.h   👈 I believe this is the one that's usually missing.
                            but I have it.
/usr/include/sys/stdio.h
/usr/include/xlocale/_stdio.h

तो, चलिए उस पहली निर्देशिका के clangबारे में शिकायत कर रहे हैं और देखें:

(venv) jluc@gotchas$ cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
(venv) jluc@SDKs$ ls -l
total 0
drwxr-xr-x  8 root  wheel  256 Aug 29 23:47 MacOSX.sdk
drwxr-xr-x  4 root  wheel  128 Aug 29 23:47 DriverKit19.0.sdk
drwxr-xr-x  6 root  wheel  192 Sep 11 04:47 ..
lrwxr-xr-x  1 root  wheel   10 Oct  1 13:28 MacOSX10.15.sdk -> MacOSX.sdk  👈
drwxr-xr-x  5 root  wheel  160 Oct  1 13:34 .

हा, हम के लिए एक सिमलिंक है MacOSX10.15.sdk के लिए, लेकिन कोई भी MacOSX10.14.sdk । यहाँ मेरी पहली clangत्रुटि फिर से है:

clang: warning: no such sysroot directory: '/Applications/Xcode.app/.../Developer/SDKs/MacOSX10.14.sdk' [-Wmissing-sysroot]

मेरा अनुमान है कि Apple ने अपने एक्सकोड कॉन्फिग पर गन को जंप किया और पहले से ही सोच रहे हैं कि वे कैटालिना पर हैं। चूंकि यह नया मैक है, 10.14 के लिए पुराना कॉन्फिगरेशन नहीं है।

जोड़:

आइए हम 10.14 की तरह उसी तरह सहानुभूति रखते हैं:

ln -s MacOSX.sdk/ MacOSX10.14.sdk

btw, अगर मैं उस sdk निर्देशिका में जाता हूं, तो मैं पाता हूं:

...
./usr/include/sys/stdio.h
./usr/include/stdio.h
....

परिणाम:

pip install psycopg2 काम करता है।

नोट: वास्तविक पाइप इंस्टॉल कमांड ने MacOSX10.14.sdk का कोई संदर्भ नहीं दिया , जो कि बाद के बिंदु पर आया, संभवतः पायथन इंस्टॉलेशन तंत्र ने ओएस संस्करण को आत्मनिरीक्षण किया।


जो pipआप उपयोग कर रहे हैं? मुझे लगता है कि यह महत्वपूर्ण समस्या हो सकती है।
फ्रैंकलिन यू

3

Xcode प्राथमिकताएँ -> स्थान जाँचना सुनिश्चित करें।

मेरे द्वारा चयनित कमांड लाइन टूल Xcode के पिछले संस्करण के लिए था (10.1 के बजाय 8.2.1)


2

ओपी के समान समस्याएं थीं

मुद्दा

बिल्ली नमस्कार

#include <stdlib.h>
int main() { exit(0); }

क्लैंग हेल्लो

/usr/local/include/stdint.h:2:10: error: #include nested too deeply
etc...

ठीक किया गया प्रयास

मैंने XCode के नवीनतम संस्करण को स्थापित किया, हालांकि, रिलीज़ नोट्स ने पिछले फिक्स में उल्लिखित फ़ाइल को इंगित किया, जोनाथन के यहाँ से, अब उपलब्ध नहीं था।

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

यहाँ विवरण https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes , नई सुविधाएँ अनुभाग के अंतर्गत ।


समाधान जो मेरे लिए काम करता है ...

इस टिप्पणी में विवरण का उपयोग करते हुए, https://github.com/SOHU-Co/kafka-node/issues/881#issuecomment-396197724

मैंने पाया कि brew doctorमैंने रिपोर्ट की थी कि मैंने अप्रयुक्त को अपने /usr/local/फ़ोल्डर में शामिल किया है ।

तो ठीक करने के लिए, मैंने उपयोगकर्ता द्वारा प्रदान की गई कमांड का उपयोग किया HowCrazy , अप्रयुक्त को खोजने और उन्हें एक अस्थायी फ़ोल्डर में स्थानांतरित करने के लिए।

यहां दोहराया गया ...

mkdir /tmp/includes
brew doctor 2>&1 | grep "/usr/local/include" | awk '{$1=$1;print}' | xargs -I _ mv _ /tmp/includes

स्क्रिप्ट्स चलाने के बाद, शामिल फ़ाइल समस्या चली गई थी। nb: मैंने इस मुद्दे पर यहाँ भी टिप्पणी की ।


1

मैं इस मुद्दे पर चल रहा था और कुछ भी काम नहीं किया । मैं दौड़ा xcode-select --installभी और स्थापित भी /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

पृष्ठभूमि

जब से मैं एक नए लैपटॉप पर ऐप स्टोर के साथ समस्या कर रहा था , मुझे ऐप स्टोर के बाहर एक्सकोड स्थापित करने के लिए Apple वेबसाइट से Xcode बीटा इंस्टॉलर डाउनलोड करने के लिए मजबूर किया गया था । इसलिए मैंने केवल Xcode Beta इंस्टॉल किया था।

उपाय

यह, (मुझे लगता है), निर्देशिका clangको नहीं खोजने के लिए बना रहा था , क्योंकि पथ में कोई भी नहीं है, या शायद Xcode बीटा बस इसे स्थापित नहीं करता है (मुझे नहीं पता)। समस्या को ठीक करने के लिए, मुझे रिलीज़ संस्करण को स्थापित करने के लिए Xcode बीटा को हटाना और App Store समस्या को हल करना था।SDKROOT/Applications/Xcode.app/....Beta

tldr;

यदि आपके पास Xcode बीटा है , तो अन्य लोगों के लिए काम कर रहे समाधानों को आज़माने से पहले सब कुछ साफ करने और रिलीज़ संस्करण स्थापित करने का प्रयास करें।


1

मैंने लगभग सभी पोस्ट किए गए समाधानों की कोशिश की और मेरे लिए कुछ भी काम नहीं किया। मैं Mojave OS (10.14.6) का उपयोग करता हूं और आखिरकार मेरे लिए क्या काम किया (Xcode और CLTs और SDK हेडर को हटाने और फिर से स्थापित करने के बाद):

  1. Https://cran.r-project.org/bin/macosx/tools/ से Clang v8 स्थापित करें
  2. निम्नलिखित पंक्तियों को ~ / .R / Makevars फ़ाइल से संशोधित करें
CC=/usr/local/opt/llvm/bin/clang -fopenmp
CXX=/usr/local/opt/llvm/bin/clang++

साथ में

CC=/usr/local/clang8/bin/clang -fopenmp
CXX=/usr/local/clang8/bin/clang++

अब R संकुल जो C संकलक पर निर्भर करते हैं, सफलतापूर्वक स्थापित होते हैं


0

जैसा कि जोनाथन लेफ़लर ऊपर बताते हैं, macOS_SDK_headers.pkg फ़ाइल अब Xcode 10.1 में नहीं है।

मेरे लिए क्या काम करना था brew upgradeऔर gcc के अपडेट और / या जो कुछ भी होमब्रे ने पर्दे के पीछे किया वह पथ की समस्याओं को हल कर दिया।


0

apue.h निर्भरता मेरे जवाब/usr/local/include के निर्देशों के बाद मैक ओएस कैटालिना पर इस समस्या को ठीक करने में कामयाब होने के बाद भी मेरे अंदर गायब थी

मैंने निर्भरता को मैन्युअल रूप से git से डाउनलोड किया और इसे अंदर रखा/usr/local/include


0

पलायन के बाद गोलंग के साथ मेरा भी यही मुद्दा था। निम्नलिखित फ़ोल्डर का नाम बदलने में मदद करने वाली एकमात्र (हास्यास्पद) चीज़ है:

sudo mv /usr/local/include /usr/local/old_include

जाहिरा तौर पर यह पुरानी फाइलों से संबंधित है जो होमब्रे स्थापित और अब टूट गई हैं।


-1

@JL Peyret सही है!

यदि आप मैकोस 10.14.6 Mojave, Xcode 11.0+

फिर

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs

sudo ln -s MacOSX.sdk / MacOSX10.14.sdk


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