[英]'wchar.h' file not found
我知道这个问题: 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
我认为它在一些完全不相关的文件夹中查找它。
升级到 macOS High Sierra 后我遇到了同样的问题。 在此错误停止工作之前正在编译的项目。 就我而言,项目文件是由 CMake 应用程序生成的。 解决方案是再次运行 CMake、“删除缓存”和“配置”项目。 这更正了 make 文件中的 sysroot 目录引用以指向新的 SDK,并解决了错误。
我有同样的问题。 我能够通过使用符号链接来修复它。 这是我做的:
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
sudo ln -s MacOSX.sdk MacOSX10.07.sdk
然后输入你的root密码。
注意:您必须使用所需的 sdk 调整最后一行。
对于在 MacOSX Mojave 上为此苦苦挣扎的任何人,这个答案都能解决。 简而言之:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
这将弹出安装 Xcode 工具的提示。sudo xcode-select -s /Library/Developer/CommandLineTools
我的系统是 macOS Mojave,我通过运行以下命令行解决了这个问题:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
它是由在 makefile 中设置的不正确的 sysroot(为较旧的 mac os 版本设置)引起的。
设置环境变量
SDKROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk"
并重新打开终端。 这解决了未找到标头的问题。
要查看编译器在哪里找到头文件,请使用-v
运行
clang -v test.c
就我而言,这个问题是由于 MacOS 更改了标头的路径造成的。
检查此说明: MacOS 发行说明。 所以解决方案是让编译器可以找到那些头文件。 我的 macOS 版本是 Catalina 10.15,XCode 版本 12.4。 对于此版本,似乎不再提供/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
,因此上述 sulotions 对我不起作用。
这个方法拯救了我的夜晚: Fixing C++ compiler bugs for the MacOS Catalina upgrade 。 请注意,如果您按照其步骤操作并出现未找到某些全局符号的错误,请不要像它所说的那样修改 LIBRARY_PATH。
如果您使用的是 CLion,请按照以下步骤操作:
我花了 3 个小时才找到这个解决方案。
仅供参考,这个项目在 Bug Sur 11.3 上运行良好,但在我升级到 Big Sur 11.4 后无法构建
我做了一些愚蠢的事情,但它确实解决了问题……但不确定它是否适用于您的计算机。
这是我所做的:我最初在 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”就在它应该在的地方......但是,我担心你的设置可能不一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.