C-Programm kann nach dem Upgrade auf Mojave nicht auf einem Mac kompiliert werden

159

Ich habe den Befehl gcc auf dem Terminal verwendet, um C-Programme zu kompilieren, aber plötzlich erhielt ich nach einem Update des Betriebssystems meines Mac (auf macOS 10.14 Mojave und XCode 10.0) die folgende Nachricht:

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

Ich habe bereits gcc installiert, wie ich es finden kann, /usr/local/binund da ist wirklich ein gcc drin . Ich habe versucht, dieselbe Datei auf meinem anderen iMac auszuführen, und es hat ohne Probleme funktioniert.

Ich habe versucht zu laufen xcode-select --installund es wurde bereits installiert, daher wurde das Problem, das ich jetzt habe, nicht behoben. Ich vermute, dass der Pfad durcheinander ist, da er anscheinend nicht gefunden werden kann, gccnachdem ich einige Befehle aus anderen Ressourcen kopiert und eingefügt habe, um dieses Problem zu lösen.

Möchte etwas Hilfe dazu.

Maxxx
quelle
5
Sie können die Suchpfade von gcc mitecho "#include <a.h>" | gcc -v -x c -
Matt
2
Sehr oft xocde-select --installist die richtige Lösung. Auf welche Betriebssysteme haben Sie aktualisiert? Mojave 10.14? Welchen XCode hast du installiert? 10.0 oder eine andere Version?
Jonathan Leffler
39
@ JonathanLeffler Ich habe einen Weg gefunden. Wenn wir XCode 10 verwenden, werden Sie feststellen, dass beim Navigieren zu / usr im Finder kein Ordner mit dem Namen "include" mehr angezeigt wird, weshalb sich das Terminal über das Fehlen der im. Enthaltenen Header-Dateien beschwert Ordner 'include'. In dieser Freigabeerklärung, developer.apple.com/documentation/xcode_release_notes/... (navigieren Sie zu /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg und das Paket laufen die haben ‚include‘ Ordner installiert ist ). Dann solltest du gut gehen.
Maxxx
1
Wenn alles andere fehlschlägt, lesen Sie das Handbuch! Oder die Versionshinweise. Ich bin nicht schrecklich überrascht, dass Apple dem Unix-Erbe den Rücken kehren möchte. Ich bin enttäuscht. Wenn sie vorsichtig sind, könnten sie mich vertreiben. Danke für die Information; Ich werde später damit experimentieren (nachdem ich ein paar Stunden lang die Augen geschlossen habe).
Jonathan Leffler
16
Nachdem ich das Paket ( open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgüber die Befehlszeile) installiert habe , habe ich es /usr/includeerneut und mein GCC 8.2.0 funktioniert wieder. Danke für den Zeiger; gut gemacht, es zu finden. Ich schlage vor, Sie schreiben die Antwort auf, da wahrscheinlich andere Leute auf das Problem stoßen werden.
Jonathan Leffler

Antworten:

264

TL; DR

Stellen Sie sicher, dass Sie das neueste 'Command Line Tools'-Paket heruntergeladen haben, und führen Sie dieses von einem Terminal (Befehlszeile) aus:

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

Einige Informationen zu Catalina finden Sie unter Kann ein C-Programm auf einem Mac nach dem Upgrade auf Catalina 10.15 nicht kompilieren .


Eine halbkohärente Antwort aus ziemlich ausführlichen Kommentaren extrahieren…

Präambel

Sehr oft, xcode-select --install es die richtige Lösung, aber diesmal scheint es nicht zu helfen. Haben Sie versucht, die Hauptoberfläche der Xcode-Benutzeroberfläche auszuführen? Möglicherweise wird zusätzliche Software für Sie installiert und bereinigt. Ich habe das nach der Installation von Xcode 10.0 gemacht, aber vor einer Woche oder länger, lange bevor ich auf Mojave aktualisiert habe.

Ich stelle fest, dass /usr/local/binSie den GCC von Xcode wahrscheinlich nicht verwenden , wenn Ihr GCC installiert ist . das ist normalerweise in installiert/usr/bin .

Ich habe auch auf macOS 10.14 Mojave und Xcode 10.0 aktualisiert. Sowohl das System /usr/bin/gccals auch das System /usr/bin/clangfunktionieren jedoch für mich ( Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0für beide). Ich habe ein Problem damit, dass mein selbstgebautes GCC 8.2.0 keine Header findet /usr/include, was parallel zu Ihrem Problem ist, dass auch /usr/local/bin/gcckeine Header gefunden werden.

Ich habe ein bisschen Vergleiche angestellt, und meine Mojave-Maschine hat überhaupt keine /usr/include, kann aber noch /usr/bin/clanggut kompilieren. Ein Header ( _stdio.hmit führendem Unterstrich) war in meinem alten /usr/include; es fehlt jetzt (daher mein Problem mit GCC 8.2.0). Ich lief xcode-select --installund es sagte " xcode-select: note: install requested for command line developer tools" und dann lief ein GUI-Installationsprogramm, das mir eine Lizenz zeigte, der ich zugestimmt hatte, und es lud die Befehlszeilentools herunter und installierte sie - oder so behauptete es.

Ich habe dann die Xcode-GUI (Command-Space, Xcode, Return) ausgeführt und festgestellt, dass weitere Software installiert werden muss, aber immer noch nicht /usr/include. Aber ich kann mit /usr/bin/clangund kompilieren /usr/bin/gcc- und die -vOption schlägt vor, dass sie verwenden

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

Arbeitslösung

Dann bemerkte Maxxx :

Ich habe einen Weg gefunden. Wenn wir Xcode 10 verwenden, werden Sie feststellen, dass beim Navigieren /usrim Finder kein Ordner mit dem Namen "include" mehr angezeigt wird. Aus diesem Grund beschwert sich das Terminal über das Fehlen der darin enthaltenen Header-Dateien den Ordner 'include'. In den Versionshinweisen zu Xcode 10.0 heißt es, dass es ein Paket gibt:

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

und Sie sollten dieses Paket installieren, damit der /usr/includeOrdner installiert wird. Dann solltest du gut gehen.

Wenn alles andere fehlschlägt, lesen Sie das Handbuch oder in diesem Fall die Versionshinweise. Ich bin nicht schrecklich überrascht, dass Apple seinem Unix-Erbe den Rücken kehren möchte, aber ich bin enttäuscht. Wenn sie vorsichtig sind, könnten sie mich vertreiben. Danke für die Information.

Nachdem ich das Paket mit dem folgenden Befehl in der Befehlszeile installiert habe, habe ich es /usr/includeerneut und mein GCC 8.2.0 funktioniert wieder.

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

Herunterladen von Befehlszeilentools

Wie Vesal in einem wertvollen Kommentar hervorhebt , müssen Sie das Command Line Tools-Paket für Xcode 10.1 auf Mojave 10.14 herunterladen.

Sie müssen sich mit einer Apple ID anmelden, um den Download zu erhalten. Wenn Sie den Download abgeschlossen haben, installieren Sie das Befehlszeilentools-Paket. Installieren Sie dann die Header wie im Abschnitt 'Arbeitslösung' beschrieben.

Dies funktionierte für mich in Mojave 10.14.1. Ich muss das schon einmal heruntergeladen haben, aber ich hatte es vergessen, als ich diese Frage beantwortete.

Upgrade auf Mojave 10.14.4 und Xcode 10.2

Am oder um den 17.05.2019 habe ich auf Mojave 10.14.4 aktualisiert, und die Xcode 10.2-Befehlszeilentools wurden ebenfalls aktualisiert (oder die Xcode 10.1-Befehlszeilentools wurden auf 10.2 aktualisiert). Dasopen oben gezeigte Befehl hat die fehlenden Header behoben. Es kann noch Abenteuer geben, wenn der Haupt-Xcode auf 10.2 aktualisiert und anschließend die Befehlszeilentools und das Header-Paket neu installiert werden.

Upgrade auf Xcode 10.3 (für Mojave 10.14.6)

Am 22.07.2019 wurde ich über den App Store darüber informiert, dass das Upgrade auf Xcode 10.3 verfügbar ist und SDKs für iOS 12.4, tvOS 12.4, watchOS 5.3 und macOS Mojave 10.14.6 enthält. Ich habe es auf einem meiner 10.14.5-Computer installiert, ausgeführt und zusätzliche Komponenten installiert, wie vorgeschlagen, und es scheint verlassen zu haben/usr/include intakt geblieben zu sein.

Später am selben Tag stellte ich fest, dass auch macOS Mojave 10.14.6 verfügbar war (Systemeinstellungen ⟶ Software-Update), zusammen mit einem Befehlszeilen-Dienstprogrammpaket IIRC (es wurde automatisch heruntergeladen und installiert). Die Installation des O / S-Updates wurde erneut gelöscht /usr/include, aber der openBefehl oben in der Antwort stellte es erneut wieder her. Das Datum, das ich in der Datei für den openBefehl hatte, war 2019-07-15.

Upgrade auf XCode 11.0 (für Catalina 10.15)

Das Upgrade auf XCode 11.0 ("enthält Swift 5.1 und SDKs für iOS 13, tvOS 13, watchOS 6 und macOS Catalina 10.15") wurde am 21.09.2019 veröffentlicht. Ich wurde über "verfügbare Updates" informiert und über die App Store-App (Registerkarte "Updates") ohne Probleme und ohne Probleme damit auf Computern heruntergeladen und installiert, auf denen macOS Mojave 10.14.6 ausgeführt wird /usr/include. Unmittelbar nach der Installation (bevor ich die Anwendung selbst ausgeführt habe) habe ich eine Neukompilierung versucht und wurde informiert:

Um der Xcode / iOS-Lizenz zuzustimmen, sind Administratorrechte erforderlich. Führen Sie "sudo xcodebuild -license" aus und wiederholen Sie diesen Befehl.

Durch Ausführen von that ( sudo xcodebuild -license) konnte ich den Compiler ausführen. Seitdem habe ich die Anwendung ausgeführt, um zusätzliche Komponenten zu installieren, die sie benötigt. immer noch kein Problem. Es bleibt abzuwarten, was passiert, wenn ich auf Catalina selbst aktualisiere - aber meine macOS Mojave 10.14.6-Maschinen sind im Moment (24.09.2019) in Ordnung.

Jonathan Leffler
quelle
4
Ah, danke, dass du das geschrieben hast. Sehr geschätzt. Prost!
Maxxx
6
Hat es für mich gelöst !!! Vielen Dank, dass Sie sich die Zeit genommen haben, dies aufzuschreiben!
Budekatude
8
GRUMP !!! Mit dem 10.14.1-Update haben sich die Dinge wieder geändert - oder zumindest scheinen sie sich wieder geändert zu haben. Für mich scheint das O / S-Update weggeblasen zu sein/usr/include, und das in der obigen Antwort aufgeführte Paket ist nicht vorhanden/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgundxcode-select --installbesagt, dass die Befehlszeilentools derzeit nicht verfügbar sind.
Jonathan Leffler
15
Verdammter Apfel. Sie können nicht einfach Dinge verlassen, die funktionieren, sie müssen Dinge bewegen, Schritte hinzufügen und Abwanderung erzeugen.
7
In der Hoffnung, dass Suchmaschinen diese Antwort finden, lösten die obigen Anweisungen ein Problem fatal error: bits/ctype_base.h: No such file or directory: #include <bits/ctype_base.h>beim Kompilieren von GCC 7.4.0 mit libstdc ++ auf Mojave für mich
Adam Lindberg
30

Nachdem ich alle Antworten ausprobiert hatte, die ich hier und online finden konnte, wurden immer noch Fehler für einige fehlende Header angezeigt. Beim Versuch, pyRFR zu kompilieren, wurde die Fehlermeldung angezeigt, dass es stdexceptnicht gefunden wurde, was anscheinend nicht in /usr/includeden anderen Headern installiert war . Ich fand jedoch heraus, wo es sich in Mojave versteckte, und fügte dies am Ende meiner ~/.bash_profileDatei hinzu:

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

Danach kann ich pyRFR und andere C / C ++ - Programme kompilieren. Laut echo | gcc -E -Wp,-v -gcc hat gcc am alten Speicherort nach diesen Headern gesucht (ohne den /c++/v1), aber nicht am neuen Speicherort. Das Hinzufügen zu CFLAGS hat dies behoben.

Nigel
quelle
Nichts hat funktioniert, aber dieser hat funktioniert. Vielen Dank!!
Felix
2
wickedsickbrothnx
Davis Dulin
23

Wenn du

  • aktualisiert auf Mojave 10.14.6
  • Ihr /usr/includewurde erneut gelöscht
  • Das in @ Jonathan-lefflers Antwort erwähnte Paket existiert nicht mehr The file /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg does not exist.und
  • Xcode beschwert sich, dass Befehlszeilentools bereits installiert sind xcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Was mir dann geholfen hat, das erwähnte Paket wiederherzustellen, war das Löschen des gesamten CommandLineToolsOrdners (sudo) rm -rf /Library/Developer/CommandLineToolsund die Neuinstallation xcode-select --install.

Plattenschieber
quelle
Ausgezeichnet! Nach Ihren Schritten werden die macOS_SDK_headers_for_macOS_10.14.pkgverfügbar und der Befehl open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkghat das getan, was er tun sollte. Tausend Dank!!
Bruno Ambrozio
3
Für mich hat folgendes funktioniert: export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
Rbieber
Danke dir! Ich steckte fest, aber das funktionierte wirklich für mich mit Mojave 10.4.6 und XCode 11.3.1
Simeon G
Jedes Mal, wenn Apple ein Systemupdate veröffentlicht, muss ich dieses Problem mit Clion auf andere Weise beheben.
Igonejack
12

Das Problem ist, dass Xcode, insbesondere Xcode 10.x, nicht alles installiert hat. Stellen Sie daher sicher, dass die Befehlszeilentools installiert sind. Geben Sie dies in eine Terminal-Shell ein:

xcode-select --install

Starten Sie auch Xcode und stellen Sie sicher, dass die gesamte erforderliche Installation installiert ist (Sie sollten dazu aufgefordert werden, wenn dies nicht der Fall ist). Da Xcode 10 nicht das vollständige Mac OS SDK installiert, führen Sie das Installationsprogramm unter aus

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

da dieses Paket nicht von Xcode 10 installiert wird.

James Rinkevich
quelle
1
Das hat mich gerettet. Vielen Dank!
Demven Weir
7

Ich habe in diesem GitHub-Kommentar eine großartige Lösung und Erklärung gefunden . Der Trick:

make SDKROOT=`xcrun --show-sdk-path` MACOSX_DEPLOYMENT_TARGET=

Hat den Job gemacht.

rauben
quelle
5

HINWEIS: Das Folgende ist wahrscheinlich sehr kontextbezogen und zeitlich begrenzt, bevor der Wechsel / die allgemeine Verfügbarkeit von Macos Catalina 10.15 erfolgt. Neuer Laptop. Ich schreibe diesen 1. Oktober 2019.

Ich glaube, diese besonderen Umstände haben mir Probleme beim Bau verursacht. In den meisten anderen Fällen gelten sie möglicherweise nicht.

Kontext:

  • macos 10.14.6 Mojave, Xcode 11.0, kurz vor dem Start von macos Catalina 10.15 . Neu gekauftes Macbook Pro.

  • Fehler bei pip install psycopg2, bei dem es sich im Grunde um ein Python-Paket handelt, das aus dem Quellcode kompiliert wird.

  • Ich habe bereits einige der vorgeschlagenen Anpassungen in den hier gegebenen Antworten vorgenommen.

Meine Fehler:

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 

Was ich bisher gemacht habe, ohne etwas zu reparieren:

  • xcode-select --install
  • xcode installiert
  • open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Immer noch der gleiche Fehler auf stdio.h.

die an einer Reihe von Orten existiert:

(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

Gehen wir also zu dem ersten Verzeichnis clang, über das wir uns beschweren, und schauen wir :

(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 .

Hah, wir haben einen Symlink für MacOSX10.15.sdk , aber keinen für MacOSX10.14.sdk . Hier ist noch einmal mein erster clangFehler:

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

Ich vermute, Apple hat die Waffe in ihrer Xcode-Konfiguration gesprungen und denkt bereits, dass sie auf Catalina sind. Da es sich um einen neuen Mac handelt, ist die alte Konfiguration für 10.14 nicht vorhanden.

DIE REPARATUR:

Lassen Sie uns 10.14 genauso wie 10.15 symlinken:

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

Übrigens, wenn ich in dieses SDK-Verzeichnis gehe, finde ich:

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

ERGEBNIS:

pip install psycopg2 funktioniert.

Hinweis: Der eigentliche Befehl pip install hat keinen Verweis auf MacOSX10.14.sdk enthalten , der zu einem späteren Zeitpunkt kam, möglicherweise durch den Python-Installationsmechanismus, der die Betriebssystemversion überprüft .

JL Peyret
quelle
Welches benutzt pipdu? Ich denke, das könnte das Hauptproblem sein.
Franklin Yu
3

Überprüfen Sie unbedingt die Xcode-Einstellungen -> Speicherorte.

Die von mir ausgewählten Befehlszeilentools waren für die vorherige Version von Xcode (8.2.1 anstelle von 10.1).

Bitbrane
quelle
2

Hatte ähnliche Probleme wie das OP

Problem

Katze hallo.c

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

hallo hallo.c

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

Versuchte Korrektur

Ich habe die neueste Version von XCode installiert. In den Versionshinweisen wurde jedoch darauf hingewiesen, dass die im vorherigen Fix erwähnte Datei von Jonathan hier nicht mehr verfügbar war.

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

Details hier https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes im Abschnitt Neue Funktionen .


Lösung, die für mich funktioniert hat ...

Verwenden Sie die Details in diesem Kommentar unter https://github.com/SOHU-Co/kafka-node/issues/881#issuecomment-396197724

Ich habe festgestellt, dass brew doctorich nicht verwendete Includes in meinem /usr/local/Ordner gemeldet habe .

Um dies zu beheben, habe ich den vom Benutzer HowCrazy bereitgestellten Befehl verwendet , um die nicht verwendeten Includes zu finden und sie in einen temporären Ordner zu verschieben.

Hier wiederholt ...

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

Nach dem Ausführen der Skripte war das Problem mit der Include-Datei behoben. nb: Ich habe dieses Problem auch hier kommentiert .

mlo55
quelle
1

Ich hatte dieses Problem und nichts hat funktioniert . Ich lief xcode-select --installund installierte auch /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg.

HINTERGRUND

Da ich Probleme mit dem App Store auf einem neuen Laptop hatte, musste ich das Xcode Beta- Installationsprogramm von der Apple-Website herunterladen, um Xcode außerhalb des App Store zu installieren . Also hatte ich nur Xcode Beta installiert.

LÖSUNG

Dies (glaube ich) hat dazu geführt, dass clangdas SDKROOTVerzeichnis nicht gefunden wurde /Applications/Xcode.app/...., weil es kein Verzeichnis enthält , Betaoder Xcode Beta es einfach nicht installiert (ich weiß es nicht). Um das Problem zu beheben, musste ich Xcode Beta entfernen und das App Store- Problem beheben , um die Release-Version zu installieren.

tldr;

Wenn Sie über Xcode Beta verfügen , versuchen Sie, alles zu bereinigen und die Release-Version zu installieren, bevor Sie die Lösungen ausprobieren, die für andere Benutzer funktionieren.

Sergio Pulgarin
quelle
1

Ich habe fast alle veröffentlichten Lösungen ausprobiert und nichts hat bei mir funktioniert. Ich verwende Mojave OS (10.14.6) und was schließlich für mich funktioniert hat (nachdem ich Xcode und CLTs und SDK-Header entfernt und neu installiert habe):

  1. Installieren Sie Clang v8 von https://cran.r-project.org/bin/macosx/tools/
  2. Ändern Sie die folgenden Zeilen aus der Datei ~ / .R / Makevars
CC=/usr/local/opt/llvm/bin/clang -fopenmp
CXX=/usr/local/opt/llvm/bin/clang++

mit

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

Jetzt werden R-Pakete, die auf C-Compilern basieren, erfolgreich installiert

Mak
quelle
0

Wie Jonathan Leffler oben ausgeführt hat, ist die Datei macOS_SDK_headers.pkg in Xcode 10.1 nicht mehr vorhanden.

Was für mich funktionierte, war zu tun brew upgradeund die Updates von gcc und / oder was auch immer Homebrew hinter den Kulissen tat, lösten die Pfadprobleme.

Dan
quelle
0

Die Abhängigkeit von apue.h fehlte immer noch in meiner, /usr/local/includenachdem ich dieses Problem unter Mac OS Catalina gemäß den Anweisungen dieser Antwort behoben hatte

Ich habe die Abhängigkeit manuell von git heruntergeladen und in platziert/usr/local/include

Matthew Barbara
quelle
0

Ich hatte das gleiche Problem mit Golang (Debuggen mit Goland) nach der Migration. Das einzige (lächerliche), was geholfen hat, ist das Umbenennen des folgenden Ordners:

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

Anscheinend hängt es mit alten Dateien zusammen, die Homebrew installiert hat und jetzt kaputt ist.

Vladik Y.
quelle
-1

@ JL Peyret ist richtig!

Wenn Sie Macos 10.14.6 Mojave, Xcode 11.0+

dann

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

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

user6821154
quelle
Sollte das nicht ein Kommentar sein?
Franklin Yu