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


94

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

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

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

답변:


114

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

  • 현재 소스 디렉토리.
  • 프로젝트 속성의 추가 포함 디렉터리에서 ( Project- > [project name] Properties , C / C ++ | General).
  • Visual Studio C ++ Include 디렉터리 의 Tools → Options → Projects and Solutions → VC ++ 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.