Unter OS X 10.9.5 mit XCode 6.0.1 habe ich folgendes Problem, wenn ich versuche, make
vom Terminal auszuführen:
fatal error: 'wchar.h' file not found
Dieses Problem trat vor einem kürzlich durchgeführten Upgrade auf Mavericks nicht auf.
Vergewissern Sie sich zuerst, dass der neueste XCode installiert ist. Als Nächstes müssen wir die Befehlszeilentools installieren/reparieren/aktualisieren. Um dies zu tun, renne
xcode-select --install
Bisher hat XCode erwartet, dass sich das aktive Entwicklerverzeichnis unter befindet
/Applications/Xcode.app/Contents/Developer/
die neuesten Befehlszeilen-Tools sind jedoch installiert
/Library/Developer/CommandLineTools/
wir müssen also wechseln, wohin XCode sucht. Um dies zu tun, renne
Sudo xcode-select --switch /Library/Developer/CommandLineTools/
Und das sollte es sein. Diese Schritte lösten das Problem für mich und zwei Kollegen.
Neben dem Beitrag von ssell und dem Kommentar von peter70 hatte ich auch nach der erneuten Installation von xcode-Befehlszeilentools und dem Wechseln des aktiven Entwicklerverzeichnisses von xcode noch Probleme. Ich habe CMake verwendet und so die Debug-/Release-Ordner gelöscht, in denen bereits vorhandene Makefiles auf veraltete Speicherorte auf Mojave verweisen. Also für die Lösung künftiger Probleme, nachdem Sie die Befehle von ssell ausgeführt haben:
xcode-select --install
Sudo xcode-select --switch /Library/Developer/CommandLineTools/
Ich glaube, wenn Sie die Befehlszeilentools durch die Installation von Xcode selbst installiert haben, müssen Sie möglicherweise auch der Lizenz mit Sudo xcodebuild --license
zustimmen. Ich denke nicht, dass dies notwendig ist, wenn Sie den vorherigen xcode-select
-Befehl verwendet haben.
Dann löschen Sie auch generierte Build-Skripte. Wenn Sie CMake verwenden, löschen Sie die Verzeichnisse cmake-build-debug
und cmake-build-release
(Ihre Namen können variieren)
Stellen Sie sicher, dass Sie alle Symboldateien aktualisieren, die nach der Aktualisierung wchar
auf die Variable xcode
verweisen. Bei mir hat das komplette Bereinigungsverzeichnis funktioniert