C++ ';wchar.h';找不到文件

C++ ';wchar.h';找不到文件,c++,ios,xcode,C++,Ios,Xcode,我知道这个问题: 但这对我没有帮助。我试过重新安装xcode,重新安装命令行工具,重新启动系统。wchar.h文件已就位,但编译器无法找到它。我还能试什么?可能是系统根相关的?有办法解决吗 macbooks-MacBook-Pro:Rack euphorbium$ sudo make c++ -Iinclude -Idep/include -Idep/lib/libzip/include -DVERSION=dev -MMD -O3 -march=core2 -ffast-math -g -Wa

我知道这个问题: 但这对我没有帮助。我试过重新安装xcode,重新安装命令行工具,重新启动系统。wchar.h文件已就位,但编译器无法找到它。我还能试什么?可能是系统根相关的?有办法解决吗

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
macbooks MacBook Pro:Rack Ephurbium$sudo make
Idep / LIb/DeMeC++ = FEAST数学-G -壁- Dracmi-Mys/Apple / CopeSt/DealsS/PraveS/Prims/MaCOSx。Prime/Deks/MaCasx0.7.SDK-MMACOSX版本MIN=10.7 -DAPAR- STDLIB=LBC++-STD= C++ 11 -STDLIB=LBC++-C-O构建/SRC/APP.CPR.O SRC/APP.CPP C++ + IIDE- IDEP/包含
警告:没有这样的sysroot目录:'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk'[-Wmissing sysroot]
在src/app.cpp中包含的文件中:1:
包含在include/app.hpp中的文件中:2:
在/Library/Developer/CommandLineTools/usr/include/c++/v1/vector:265中包含的文件中:
在/Library/Developer/CommandLineTools/usr/include/c++/v1/iosfwd:90中包含的文件中:
/Library/Developer/CommandLineTools/usr/include/c++/v1/wchar.h:119:15:致命错误:
找不到“wchar.h”文件
#下一步包括
^~~~~~~~~
生成1个错误。
make:**[build/src/app.cpp.o]错误1

由于wchar.h既存在于xcode应用程序中,也存在于
/Library/Developer/CommandLineTools
中,因此我认为它会在一些完全不相关的文件夹中查找它

这是由于makefiles中设置了不正确的sysroot(针对较旧的mac os版本)造成的。

我也遇到了同样的问题。我可以通过使用符号链接来修复它。 这是我做的:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
sudo ln -s MacOSX.sdk MacOSX10.07.sdk  
然后输入您的根密码


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

升级到macOS High Sierra后,我也遇到了同样的问题。在此错误之前正在编译的项目已停止工作。在我的例子中,项目文件是由CMake应用程序生成的。解决方案是再次运行CMake、“删除缓存”和“配置”项目。这更正了make文件中指向新SDK的sysroot目录引用,并解决了错误。

我做了一些愚蠢的事情,但它确实解决了问题。。。但不确定它是否适用于您的计算机

以下是我所做的: 我最初安装C++使用MacBook上的自制程序…因此,我必须使用安装程序手动安装Xcode CommandLineTools,安装程序位于
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
。然后,我将“c++”文件夹内容从复制到文件夹
/Library/Developer/CommandLineTools/usr/include/c++/v1
,复制到我希望丢失文件所在的文件夹中,位于
/usr/local/cell/gcc/8.2.0/include/c++/8.2.0
,同时用相同的名称替换文件


这个技巧奏效了,因为现在丢失的文件“wchar.h”就在它应该在的地方。。。不过,恐怕您的设置可能不一样

对于在MacOSX Mojave上挣扎的任何人来说,这解决了问题。简言之:

  • 转到终端并运行
    open/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
    这将提示安装Xcode工具
  • 完成后,到达终端并运行
    sudoxcode选择-s/Library/Developer/CommandLineTools

我的系统是macOS Mojave,我通过运行以下命令行修复了此问题:

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

设置环境变量

SDKROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk"
并重新开放候机楼。这解决了未找到标题的问题

要查看编译器在哪里找到头,请使用
-v

 clang -v test.c

在我的例子中,这个问题是因为MacOS更改了头的路径

请检查此注释:。 因此,解决方案是让编译器能够找到这些头。 我的macOS版本是Catalina 10.15,XCode版本是12.4。对于这个版本,似乎不再提供macOS_10.14.pkg的
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_,因此上面的sulotion对我不起作用

此方法节省了我的时间:。请注意,如果您按照它的步骤操作,并且出现了一些未找到全局符号的错误,请不要按照它所说的修改库路径。

如果您使用的是CLion,:

  • 单击IDE底部中间的CMake
  • 单击左侧的设置档位图标
  • 单击重置缓存并重新加载项目
  • 我花了3个小时才找到这个解决方案


    仅供参考,该项目在Bug Sur 11.3上运行良好,但在升级到Big Sur 11.4后未能构建警告:没有这样的系统根目录,您设置了错误的系统根目录。我不知道如何更改它。我将查看Makefile。对于macOS sierra使用:sudo ln-s MacOSX.sdk MacOSX10.12sdkDelete CMake缓存,如Kemyar的回答!非常感谢。我删除了缓存文件,这节省了一天。谢谢!我删除了缓存文件,这节省了一天的时间。尽管不推荐使用该方法,但该技巧确实有效。。。Symlink可能是一个更好的方法。在运行这些命令之前,我需要按照这个方法删除并重新安装我的命令行工具,然后它才能工作