macOS 'wchar.h' File Not Found
XcodeMacosClangXcode Problem Overview
Under OS X 10.9.5 using XCode 6.0.1 I am running into the following issue when I try to run make
from the terminal:
fatal error: 'wchar.h' file not found
This issue was not happening prior to a recent upgrade to Mavericks.
Xcode Solutions
Solution 1 - Xcode
First ensure that the latest XCode is installed. Next, we need to install/fix/update Command Line Tools. To do so, run
xcode-select --install
Previously, XCode expected it's active developer directory to be located at
/Applications/Xcode.app/Contents/Developer/
but the latest Command Line Tools is installed to
/Library/Developer/CommandLineTools/
so we need to switch where XCode is looking. To do so, run
sudo xcode-select --switch /Library/Developer/CommandLineTools/
And that should be it. These steps solved the issue for myself and two coworkers.
Solution 2 - Xcode
- My error was similar to yours which said string.h not found, I solved it by running this command:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
I think that the problem is that for macOS Mojave users, the headers are no longer installed under /usr/include by default.
Solution 3 - Xcode
Adding on ssell's post and peter70's comment, I also still had issues after installing xcode command line tools again, and switching the xcode active developer directory. I was using CMake, and so deleted the debug/release folders which had existing Makefiles referencing out-of-date locations on Mojave. So for future problem resolving, after running the commands from ssell's post:
xcode-select --install
sudo xcode-select --switch /Library/Developer/CommandLineTools/
I believe if you've installed the command line tools by installing Xcode itself, you may also need to agree to the licence with sudo xcodebuild --license
. I don't think this is necessary if you used the prior xcode-select
command.
Then also delete generated build scripts. If using CMake, delete the cmake-build-debug
and cmake-build-release
directories (your names may vary)
Solution 4 - Xcode
Deleting all the generated files and restarted the compilation worked for me. It was suggested in this link:
https://discourse.brew.sh/t/solved-scan-build-from-llvm-7-0-seems-broken-on-macos-mojave/3151/14
Solution 5 - Xcode
Deleting all the generated files, like @Alfredo Morales Pinzón. If you use cmake, so you need to delete the work dictionary which is "cmake-build-debug" and regenerated the "cmake-build-debug".
Solution 6 - Xcode
Make sure, you update all symbols files which have references to the wchar
after updating xcode
. For me full cleaning build directory has worked
Solution 7 - Xcode
xcode-select --install worked for me.
additionally if you're using visual studio code and your intellisense acts weird -
- make a folder called
.vscode
in your project root. - install vscode extension call C/C++ by microsoft
- create the
c_cpp_properties.json
file and paste the below contents
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
}
Solution 8 - Xcode
If it happened after update Xcode you need (Apple WTF?) download and install Command Line Tools for Xcode manually from https://developer.apple.com/download/more/?=for%20Xcode
Or using terminal
xcode-select --install
Restart and maybe clean build cache (delete cmake-build-debug
) before run your project.
I guess it's needed every time after update Xcode for all major program update
Solution 9 - Xcode
The issue is that the path of compiler gets changed after update or other advancement maybe xcode reinstallment. I have tried everything that was given on every site sadly none worked.
I figured out that many issues cause this .
But then what worked for me is unlinking gcc. I had also installed gcc from homebrew earlier. Just unlinking it worked for me. So if you are also one of the few who has installed gcc from homebrew then
brew unlink gcc
should be sufficient to get it off your default path, so you'll be back to Xcode's default gcc (assuming you have that installed).