找不到'wchar.h'文件

Eup*_*ium 9 c++ xcode ios

我知道这个问题:macOS'wchar.h'文件未找到, 但它没有帮助我.我尝试重新安装xcode,重新安装命令行工具,重新启动系统.wchar.h文件已就绪,但编译器无法找到它.我还能尝试什么?也许它与sysroot有关?有办法解决这个问题吗?

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
Run Code Online (Sandbox Code Playgroud)

因为wchar.h同时存在于xcode应用程序中,并且/Library/Developer/CommandLineTools我认为它在一些完全不相关的文件夹中查找它.

小智 14

升级到macOS High Sierra后我遇到了同样的问题.在停止处理此错误之前正在编译的项目.就我而言,项目文件是由CMake应用程序生成的.解决方案是再次运行CMake,"删除缓存"和"配置"项目.这更正了make文件中的sysroot目录引用以指向新SDK并且错误已解决.

  • 谢谢!我删除了缓存文件,这节省了一天. (3认同)

小智 8

我有同样的问题.我能够通过使用符号链接来修复它.这就是我所做的:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
sudo ln -s MacOSX.sdk MacOSX10.07.sdk  
Run Code Online (Sandbox Code Playgroud)

然后输入您的root密码.

注意:您必须使用所需的sdk调整最后一行.


ssh*_*ssh 7

对于任何在MacOSX Mojave上苦苦挣扎的人,此答案都能解决。简而言之:

  • 转到终端并运行。open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg这将提示您安装Xcode工具。
  • 完成之后,到达终端并运行 sudo xcode-select -s /Library/Developer/CommandLineTools