2017-09-21 29 views
4

私はこの質問について知っています:macOS 'wchar.h' File Not Found しかし、それは私を助けませんでした。私はxcodeの再インストール、コマンドラインツールの再インストール、システムの再起動を試みました。 wchar.hファイルは存在しますが、コンパイラはそれを見つけることができません。他に何を試すことができますか?おそらく、それはsysrootに関係しているでしょうか?それを修正する方法はありますか?プロトタイプがwchar.hは、両方のXcodeのアプリで存在し、/Library/Developer/CommandLineToolsで、私はそれはいくつかの完全に無関係のフォルダにそれを探していることだと思うので、'wchar.h'ファイルが見つかりません

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 

+0

_warning:このようなsysrootディレクトリはありません。あなたは間違ったsysrootを設定しています。 –

+0

私はそれをどのように変更するか分かりません。 – Euphorbium

+0

私はMakefileを調べます。 –

答えて

7

は同じpbを持っています。シンボリックリンクを使って修正できました。 これは私が作ったものである。

CD /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

にsudoのln -s MacOSX.sdk MacOSX10.07.sdk
あなたのルートパスワードを入力してください。

注意:必要なsdkで最後の行を修正する必要があります。

+0

for macOS sierra use:sudo ln -s MacOSX.sdk MacOSX10.12sdk –

1

これは、makefileに設定された不正なsysroot(古いMac OSバージョン用に設定されたもの)が原因でした。

+0

ありがとう!私はキャッシュファイルを削除し、これで1日が節約されました。 – DaddyM

7

macOS High Sierraにアップグレードした後、同じ問題が発生しました。前にコンパイルしていたプロジェクトがこのエラーで作業を停止しました。私の場合、プロジェクトファイルはCMakeアプリケーションによって生成されていました。解決策は、CMakeを実行し、キャッシュを削除し、プロジェクトを再度設定することでした。これにより、makeファイルのsysrootディレクトリ参照が新しいSDKを指すように修正され、エラーが解決されました。

+0

ありがとうございました!私はキャッシュファイルを削除し、これで1日が節約されました。 – DaddyM

+0

素晴らしい、ありがとう! – Johan

関連する問題