macOS'wchar.h'找不到文件

sse*_*ell 51 macos xcode clang

在使用XCode 6.0.1的OS X 10.9.5下,当我尝试make从终端运行时,我遇到了以下问题:

fatal error: 'wchar.h' file not found
Run Code Online (Sandbox Code Playgroud)

最近升级到Mavericks之前没有发生过这个问题.

sse*_*ell 68

首先确保安装了最新的XCode.接下来,我们需要安装/修复/更新命令行工具.为此,请运行

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

以前,XCode预计它的活动开发人员目录位于

/Applications/Xcode.app/Contents/Developer/
Run Code Online (Sandbox Code Playgroud)

但安装了最新的命令行工具

/Library/Developer/CommandLineTools/
Run Code Online (Sandbox Code Playgroud)

所以我们需要切换XCode正在寻找的位置.为此,请运行

sudo xcode-select --switch /Library/Developer/CommandLineTools/
Run Code Online (Sandbox Code Playgroud)

这应该是它.这些步骤为我和两位同事解决了这个问题.

  • 对我不起作用.我可以看到wchar.h文件位于/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/wchar.h,应该找到它.命令行工具文件夹中没有这样的文件(在那里更深) (11认同)
  • 我遇到了同样的问题,但使用string.h时,我的解决方案是“手动”(使用Finder)删除所有输出目录。问题是某些旧的输出文件引用了过时的XCode路径。删除所有输出文件后,问题解决了 (2认同)
  • @Piotr99如果我没记错的话,它们是正常的输出文件,位于我指定的输出目录中(在Qt项目构建设置中) (2认同)

小智 52

  • 我的错误与您的错误类似,即未找到string.h,我通过运行以下命令解决了该错误:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Run Code Online (Sandbox Code Playgroud)

我认为问题在于,对于macOS Mojave用户,默认情况下不再将标头安装在/ usr / include下。

  • /Library/Developer/CommandLineTools/ 下没有 Packages 文件夹。只有以下文件夹“Library”、“SDKs”和“usr” (5认同)

Jos*_*osh 8

加上ssell的帖子和peter70的评论,再次安装xcode命令行工具并切换xcode活动开发人员目录后,我仍然遇到问题。我使用的是CMake,因此删除了调试/发布文件夹,该文件夹具有引用Mojave上过期位置的现有Makefile。因此,为了解决将来的问题,请在运行ssell帖子中的命令后:

xcode-select --install

sudo xcode-select --switch /Library/Developer/CommandLineTools/

我相信,如果您是通过本身安装Xcode来安装命令行工具的,则可能还需要通过同意许可sudo xcodebuild --license。如果您使用了先前的xcode-select命令,我认为这不是必需的。

然后还删除生成的构建脚本。如果使用CMake,请删除cmake-build-debugcmake-build-release目录(您的名称可能有所不同)


小智 7

删除所有生成的文件并重新启动编译对我有用。在此链接中建议:

https://discourse.brew.sh/t/solved-scan-build-from-llvm-7-0-seems-broken-on-macos-mojave/3151/14


小智 5

删除所有生成的文件,如@Alfredo Morales Pinz\xc3\xb3n。\n如果你使用cmake,那么你需要删除工作字典“cmake-build-debug”并重新生成“cmake-build-debug”。

\n