Visual Studio는 C ++ 헤더 파일을 어디에서 찾습니까?


94

SourceForge (호보 카피, 호기심이 있다면)에서 C ++ 애플리케이션의 사본을 확인하고 컴파일을 시도했습니다.

Visual Studio에서 특정 헤더 파일을 찾을 수 없다고 알려줍니다. 소스 트리에서 파일을 찾았지만 컴파일 할 때 찾을 수 있도록 어디에 두어야합니까?

특별한 디렉토리가 있습니까?

답변:


114

Visual Studio는 다음 순서로 헤더를 찾습니다.

  • 현재 소스 디렉토리.
  • 프로젝트 속성의 추가 포함 디렉터리에서 ( Project- > [project name] Properties , C / C ++ | General).
  • Visual Studio C ++ Include 디렉터리ToolsOptionsProjects and SolutionsVC ++ Directories .
  • 새 버전의 Visual Studio (2015+)에서는 위 옵션이 더 이상 사용되지 않으며 기본 포함 디렉터리 목록은 프로젝트 속성구성VC ++ 디렉터리 에서 사용할 수 있습니다.

귀하의 경우 프로젝트 속성에 헤더가있는 디렉터리를 추가합니다 ( 프로젝트 속성구성C / C ++일반추가 포함 디렉터리 ).


3
좋은 대답이지만 Visual Studio 2003에서는 "Tools | Options | Projects and Solutions | VC ++ Directories"가 아닌 "Tools | Options | VC ++ Directories"를보아야한다는 점을 추가해야합니다.
Graf

36
VS 2010의 전처리 기는 인용 된 include 구문이 사용되는 경우에만 현재 디렉토리를 조사합니다 (예 : #include "whatever.h"). 꺾쇠 괄호 (예 : #include <whatever.h>)를 사용하면 현재 디렉터리가 생략됩니다 ( msdn.microsoft.com/en-us/library/36k2cdd4(v=VS.100).aspx )
Dennis Münkle 2011 년

5
Visual Studio 2010 이상에서 "표준 C ++ 디렉터리"는 더 이상 도구-> 옵션 아래에 없으며 전역 속성 시트에 있습니다. blogs.msdn.com/b/vsproject/archive/2009/07/07/…
Mooing Duck

8
아무도 아직 기본 디렉토리를 말하지 않았는지 궁금합니다. 그래서 여기 있습니다 <root dir of Visual Studio>/VC/include/. 이전 사용자의 작업 PC에 MSVC가 있지만 GNU / Linux를 사용하고 있으며 Microsoft®의 헤더를 보는 호기심을 충족시키기 위해 VC를 시작하고 싶지 않습니다. Btw, 내가 가진 호기심이 무엇인지에 대해 : MSDN이 자체 헤더 이름조차 알지 못함을 발견했습니다! 즉 그들이 언급 Iphlpapi.h하지만, 그러한 파일이 아닌 존재, 그것의 이름은 오히려입니다 iphlpapi.h, 하나 IPHlpApi.h(모두가)! lol
Hi-Angel

17
"VS> 도구> 옵션> 프로젝트 및 솔루션> VC ++ 디렉토리"옵션은 이제 더 이상 사용되지 않습니다.
BG BRUNO 2015 년

21

실제로 Visual Studio 2017 커뮤니티가있는 Windows 10에서 C ++ 헤더 경로는 다음과 같습니다.

  1. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include

  2. C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt

첫 번째에는 <iostream>, <algorithm>. 두 번째에는 <stdio.h>, <string.h>. 버전 번호는 소프트웨어에 따라 다를 수 있습니다.

이것이 도움이되기를 바랍니다.


1
이것은 OP에 대한 가장 직접적인 대답입니다. 다른 답변은 다른 문제에 대해 이야기하지만 이것이 허용되는 답변이어야합니다.
winux

@linrongbin 최신 VS 빌드 도구 설치로 생성 된 디렉터리를 청소하고 있습니다. 당신 말이 맞아요. 하지만 Windows SDK 옵션을 선택 취소했기 때문에 C 헤더가 없다는 것은 사실상 BuildTools의 C ++ 워크 플로가 C를 지원하지 않음을 의미합니다.
Hatebit

11

프로젝트가 Visual Studio 프로젝트 파일과 함께 제공된 경우 헤더를 찾도록 이미 구성되어 있어야합니다. 그렇지 않은 경우 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택하고 "C / C ++"를 클릭 한 다음 포함 파일이 포함 된 디렉터리를 "추가 포함 디렉터리"에 추가하여 프로젝트 설정에 포함 파일 디렉터리를 추가해야합니다. 편집 상자.


6

이것을 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가 권장하지 않습니다.)


6

Visual Studio 2015 커뮤니티에 버그가있는 것 같습니다. 64 비트 프로젝트의 경우 포함 폴더는 win32 비트 구성 추가 포함 폴더 목록에 없으면 찾을 수 없습니다 .


3
이 버그에 대한 링크 또는 참조가 있습니까?
Preet Sangha 2016

아니요 직접 찾았지만보고하지 않았습니다
Markus

5

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가 수행하는 방식으로 수행하고 모든 것이 규칙적입니다.

더 많은 정보를 위해, 왜 모두를 수행하는 내 대답을 볼 수 있다 .


1
제목에만 "C ++"가 포함되어 있고 32 비트 경로 섹션에서 64 비트 경로를 찾는 버그를 인정한 경우
Markus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.