2017-09-21 1 views
4

이 질문에 대해 알고 있습니다 : macOS 'wchar.h' File Not Found 하지만 도움이되지 않았습니다. xcode 재설치, 명령 줄 도구 재설치, 시스템 재시작 등을 시도했습니다. wchar.h 파일이 제자리에 있지만 컴파일러가 찾지 못합니다. 그 밖의 무엇을 시도 할 수 있습니까? 어쩌면 그것은 sysroot와 관련이 있을까요? 그걸 고칠 방법이 있니? wchar.h가 모두 엑스 코드 응용 프로그램에 존재하고 /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를 에선 -s MacOSX.sdk MacOSX10.07.sdk
루트 암호를 입력하십시오.

NB : 마지막 줄을 필수 sdk로 변경해야합니다.

+0

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

1

이것은 메이크 파일에 설정된 잘못된 sysroot (이전 Mac OS 버전으로 설정 됨)로 인해 발생했습니다.

+0

고마워요! 나는 캐시 파일을 삭제하고 이것은 하루를 저장했다. – DaddyM

7

macOS High Sierra로 업그레이드 한 후 동일한 문제가 발생했습니다. 이전에 컴파일 중이던 프로젝트가이 오류로 인해 작업을 중단했습니다. 필자의 경우, 프로젝트 파일은 CMake 응용 프로그램에 의해 생성되었습니다. 해결책은 CMake를 실행하고 '캐시 삭제'를 수행하고 프로젝트를 다시 '구성'하는 것이 었습니다. 이렇게하면 make 파일의 sysroot 디렉토리 참조가 새 SDK를 가리 키도록 수정되었으며 오류가 해결되었습니다.

+0

고마워요! 나는 캐시 파일을 삭제하고 이것은 하루를 저장했다. – DaddyM

+0

끝내 주셔서 고마워요! – Johan

관련 문제