SourceForge (호보 카피, 호기심이 있다면)에서 C ++ 애플리케이션의 사본을 확인하고 컴파일을 시도했습니다.
Visual Studio에서 특정 헤더 파일을 찾을 수 없다고 알려줍니다. 소스 트리에서 파일을 찾았지만 컴파일 할 때 찾을 수 있도록 어디에 두어야합니까?
특별한 디렉토리가 있습니까?
답변:
Visual Studio는 다음 순서로 헤더를 찾습니다.
귀하의 경우 프로젝트 속성에 헤더가있는 디렉터리를 추가합니다 ( 프로젝트 속성 → 구성 → C / C ++ → 일반 → 추가 포함 디렉터리 ).
<root dir of Visual Studio>/VC/include/
. 이전 사용자의 작업 PC에 MSVC가 있지만 GNU / Linux를 사용하고 있으며 Microsoft®의 헤더를 보는 호기심을 충족시키기 위해 VC를 시작하고 싶지 않습니다. Btw, 내가 가진 호기심이 무엇인지에 대해 : MSDN이 자체 헤더 이름조차 알지 못함을 발견했습니다! 즉 그들이 언급 Iphlpapi.h
하지만, 그러한 파일이 아닌 존재, 그것의 이름은 오히려입니다 iphlpapi.h
, 하나 IPHlpApi.h
(모두가)! lol
실제로 Visual Studio 2017 커뮤니티가있는 Windows 10에서 C ++ 헤더 경로는 다음과 같습니다.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt
첫 번째에는 <iostream>
, <algorithm>
. 두 번째에는 <stdio.h>
, <string.h>
. 버전 번호는 소프트웨어에 따라 다를 수 있습니다.
이것이 도움이되기를 바랍니다.
이것을 Rob Prouse 의 게시물에 댓글로 추가하려고 했지만 서식이 부족하여 이해할 수 없었습니다.
Visual Studio 2010에서 "도구 | 옵션 | 프로젝트 및 솔루션 | VC ++ 디렉터리"대화 상자는 "도구> 옵션에서 편집하는 VC ++ 디렉터리가 더 이상 사용되지 않음"을보고하여 다소 직관적이지 않은 속성 관리자를 사용할 것을 제안합니다.
정말로 기본 $ (IncludePath)를 업데이트하려면 XML 파일 중 하나에서 적절한 항목을 해킹해야합니다.
\ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ Platforms \ Win32 \ PlatformToolsets \ v100 \ Microsoft.Cpp.Win32.v100.props
또는
\ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ Platforms \ x64 \ PlatformToolsets \ v100 \ Microsoft.Cpp.X64.v100.props
(아마 Microsoft가 권장하지 않습니다.)
Visual Studio 2015 커뮤니티에 버그가있는 것 같습니다. 64 비트 프로젝트의 경우 포함 폴더는 win32 비트 구성 추가 포함 폴더 목록에 없으면 찾을 수 없습니다 .
Visual Studio에서 포함 경로가 어떻게 작동합니까? 라는 새로운 질문이 있습니다 .
최신 버전의 VisualStudio에서이를 수행하는 방법이 공개되었습니다.
두 번째는 위의 Steve Wilkinson의 대답이 설명하는 것입니다. 그가 생각했던 것처럼 Microsoft가 권장하는 것이 아닙니다.
여기서 짧게 말하면 :하세요.하지만 User-Directory에서하세요.
C : \ Users \ UserName \ AppData \ Local \ Microsoft \ MSBuild \ v4.0
XML 파일에서
Microsoft.Cpp.Win32.user.props
및 / 또는
Microsoft.Cpp.x64.user.props
수정되지 않은 Microsoft Factory-File이 상주 할 것으로 예상되는 C : \ program files-디렉토리가 아닙니다.
그런 다음 VisualStudio가 수행하는 방식으로 수행하고 모든 것이 규칙적입니다.
더 많은 정보를 위해, 왜 모두를 수행하는 내 대답을 볼 수 있다 .