17 votes

Fichier 'wchar.h' non trouvé

Je connais cette question : macOS - Fichier 'wchar.h' introuvable mais ça ne m'a pas aidé. J'ai essayé de réinstaller xcode, de réinstaller les outils de ligne de commande, de redémarrer le système. Le fichier wchar.h est en place, mais le compilateur ne parvient pas à le trouver. Que pourrais-je essayer d'autre ? Peut-être est-ce lié au sysroot ? Un moyen de corriger cela ?

macbooks-MacBook-Pro:Rack euphorbium$ sudo make
c++ -Iinclude -Idep/include -Idep/lib/libzip/include -DVERSION=dev -MMD -O3 -march=core2 -ffast-math -g -Wall -DARCH_MAC -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7 -DAPPLE -stdlib=libc++ -std=c++11 -stdlib=libc++ -c -o build/src/app.cpp.o src/app.cpp
clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk' [-Wmissing-sysroot]
In file included from src/app.cpp:1:
In file included from include/app.hpp:2:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/vector:265:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/iosfwd:90:
/Library/Developer/CommandLineTools/usr/include/c++/v1/wchar.h:119:15: fatal error: 
      'wchar.h' file not found
#include_next <wchar.h>
              ^~~~~~~~~
1 error generated.
make: *** [build/src/app.cpp.o] Error 1

puisque wchar.h existe à la fois dans l'application xcode, et dans le fichier /Library/Developer/CommandLineTools Je pense qu'il le cherche dans un dossier sans aucun rapport.

18voto

Kamyar Points 161

J'ai eu le même problème après la mise à niveau vers macOS High Sierra. Un projet qui se compilait auparavant a cessé de fonctionner avec cette erreur. Dans mon cas, les fichiers du projet avaient été générés par l'application CMake. La solution consistait à exécuter CMake, à " supprimer le cache " et à " configurer " le projet à nouveau. Cela a corrigé la référence au répertoire sysroot dans les fichiers make pour pointer vers le nouveau SDK et l'erreur a été résolue.

9voto

alain Points 104

J'ai le même problème. J'ai pu le résoudre en utilisant un lien symbolique. Voici ce que j'ai fait :

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
sudo ln -s MacOSX.sdk MacOSX10.07.sdk  

Ensuite, entrez votre mot de passe Root.

NB : vous devez adapter la dernière ligne avec le sdk requis.

9voto

ssh Points 74

Pour tous ceux qui ont du mal à résoudre ce problème sous MacOSX Mojave, voici ce qui suit réponse le résout. En bref :

  • Allez dans le terminal et exécutez open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg Cela fera apparaître l'invite pour installer les outils Xcode.
  • Une fois que c'est fait, allez dans le terminal et exécutez sudo xcode-select -s /Library/Developer/CommandLineTools

3voto

NeilXu Points 21

Mon système est macOS Mojave, et j'ai résolu ce problème en exécutant cette ligne de commande :

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

2voto

Euphorbium Points 555

Cela a été causé par un sysroot incorrect, (défini pour une ancienne version de mac os) défini dans les makefiles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X