繁体   English   中英

找不到“wchar.h”文件

[英]'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,请按照以下步骤操作

  1. 单击 IDE 底部中心的 CMake
  2. 单击左侧的设置齿轮图标
  3. 单击重置缓存并重新加载项目

我花了 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM