我在使用 XCode 6.0.1 和 OS X 10.9.5 的情况下,当我尝试从终端运行 make
命令时出现了以下问题:
fatal error: 'wchar.h' file not found
在最近升级到Mavericks之前,这个问题没有发生过。
首先确保已安装最新版本的XCode。接下来,我们需要安装/修复/更新命令行工具。要做到这一点,请运行
xcode-select --install
之前,XCode期望其活跃的开发者目录位于:/Applications/Xcode.app/Contents/Developer/
但是最新的命令行工具已安装到
/Library/Developer/CommandLineTools/
因此,我们需要更改 XCode 的查找位置。要这样做,请运行
sudo xcode-select --switch /Library/Developer/CommandLineTools/
就这样了。这些步骤解决了我和两个同事的问题。
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
我认为问题在于对于macOS Mojave用户来说,默认情况下头文件不再安装在/usr/include下。
/Library/Developer/CommandLineTools/
下没有Packages
文件夹,只有以下几个文件夹:Library
, SDKs
和usr
. - Wenmin Wu在ssell的帖子和peter70的评论基础上,我重新安装了xcode命令行工具并切换xcode的活动开发者目录,但仍然存在问题。我正在使用CMake,因此删除了已存在于Mojave上引用过时位置的Makefiles的debug/release文件夹。因此,为了解决未来的问题,在运行ssell的命令之后:
xcode-select --install
sudo xcode-select --switch /Library/Developer/CommandLineTools/
我认为如果你通过安装Xcode本身来安装命令行工具,则还需要同意使用sudo xcodebuild --license
进行许可协议。如果您使用之前的xcode-select
命令,则不需要这样做。
然后也要删除生成的构建脚本。如果使用CMake,请删除cmake-build-debug
和cmake-build-release
目录(名称可能不同)
删除所有生成的文件并重新启动编译对我有用。建议在此链接中提供:
https://discourse.brew.sh/t/solved-scan-build-from-llvm-7-0-seems-broken-on-macos-mojave/3151/14
删除所有生成的文件,就像@Alfredo Morales Pinzón一样。 如果您使用cmake,则需要删除工作目录“ cmake-build-debug ”并重新生成“ cmake-build-debug ”。
xcode-select --install 对我有用。
另外,如果您使用的是Visual Studio Code,而且您的智能感知表现出奇怪的行为 -
.vscode
的文件夹。c_cpp_properties.json
文件并粘贴以下内容project_dir > .vscode > c_cpp_properties.json
{
"configurations": [
{
"name": "macOS",
"includePath": ["${workspaceFolder}/**"],
"defines": [],
"macFrameworkPath": ["/System/Library/Frameworks", "/Library/Frameworks"],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "${default}"
}
],
"version": 4
}
确保在更新xcode
后,您更新所有具有对wchar
的引用的符号文件。对我来说,完全清理构建目录已经奏效
xcode-select --install
在运行项目之前,重新启动并清除构建缓存(删除cmake-build-debug
)。
我猜每次更新Xcode的所有主要程序更新后都需要这样做。
我正在使用MacOS Ventura。我已经为此苦苦挣扎了数小时。设置符号链接是唯一对我有效的解决方案。这里是它https://dev59.com/ClMH5IYBdhLWcg3wyy3F#58349403。