我知道这个问题:macOS 'wchar.h' File Not Found,但它没有帮助我。我尝试重新安装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
因为wchar.h既存在于xcode应用程序中,也存在于/Library/Developer/CommandLineTools
中,我认为它在一些完全不相关的文件夹中查找它。
我有同样的问题。我能够通过使用符号链接来修复它。这就是我所做的:
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
sudo ln -s MacOSX.sdk MacOSX10.07.sdk
然后输入您的root密码。
注意:您必须使用所需的sdk调整最后一行。
升级到macOS High Sierra后我遇到了同样的问题。在停止处理此错误之前正在编译的项目。就我而言,项目文件是由CMake应用程序生成的。解决方案是再次运行CMake,“删除缓存”和“配置”项目。这更正了make文件中的sysroot目录引用以指向新SDK并且错误已解决。
对于任何一个在MacOSX Mojave上挣扎的人来说,这个answer解决了这个问题。简而言之:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
这将显示安装Xcode工具的提示。sudo xcode-select -s /Library/Developer/CommandLineTools
它是由makefile中设置的不正确的sysroot(设置为较旧的mac os版本)引起的。
我的系统是macOS Mojave,我通过运行这个命令行解决了这个问题:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
我做了一些愚蠢的事情,但它确实解决了问题...不确定它是否适用于您的计算机。
这就是我所做的:我最初在Mojave上的MacBook上使用Homebrew安装了c ++ ...所以我不得不使用/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
上的安装程序手动安装Xcode CommandLineTools。然后我将“c ++”文件夹内容从文件夹/Library/Developer/CommandLineTools/usr/include/c++/v1
复制到我想要丢失文件的文件夹,在/usr/local/Cellar/gcc/8.2.0/include/c++/8.2.0
,同时替换具有相同名称的文件。
诀窍是有效的,因为现在丢失的文件“wchar.h”正确它应该是...你的设置可能不一样,但是,我担心。