"디렉터리 포함"과 "디렉터리 추가 포함"의 차이점은 무엇입니까?


94

내 프로젝트의 구성 속성에서 "VC ++ 디렉터리"아래에 "디렉터리 포함"항목이 있습니다. 그러나 "C / C ++"옵션 아래에 "Additional Include Directories"라는 또 다른 항목이 있습니다. 라이브러리 디렉토리에서도 마찬가지입니다.

이 두 항목의 차이점은 무엇입니까?

여기에 이미지 설명 입력 여기에 이미지 설명 입력

답변:


48

이것은 VS2010에서 도입 된 어색함입니다. VC ++ 디렉터리 설정은 도구 + 옵션, 프로젝트 및 솔루션, VC ++ 디렉터리에있었습니다. 머신에 빌드 된 모든 프로젝트에 적용되는 전역 설정입니다. 여전히 존재하지만 이제 프로젝트 설정에서 변경해야한다고 지적합니다. VS2010에서 빌드 엔진 점검의 부작용으로 msbuild로 빌드 할 수 있습니다. 프로젝트 별 설정을 제거하는 것은 논리적 이었지만 기존 프로젝트가 너무 많이 중단 될 수 있습니다.

따라서 VC ++ 디렉터리 설정을 시스템 기본값으로 처리하는 것이 가장 좋습니다. VS 설치 프로그램에 의해 자동으로 사전 설정됩니다. 비정상적인 디렉토리 검색 순서가 필요한 경우에만 수정하여 사용자 지정 위치를 마지막에 두십시오. 그렇게하는 것은 매우 드문 일입니다.

그러나 작동합니다. 그리고 그것은 결국 이용되었습니다. VS2012 이상에서 플랫폼 도구 집합 설정을 강화합니다. 다른 컴파일러, 다른 링커, 다른 #include 디렉토리, 다른 링커 검색 경로. 하나의 설정으로 수정되었습니다.


3
흠 ... gloabl 옵션이 이것 아래에 저장되는 것은 사실입니다-그러나 이것은 속성 시트 Microsoft.Cpp.Win32.user이며 이것뿐입니다. 프로젝트를 활성화하거나 다른 속성 시트를 사용할 때 "VC ++ 디렉토리"항목을 편집하면 변경 사항이 .vcxproj파일 또는 해당 .props파일에 유지되며 전역 또는 사용자 전체가 아닙니다.
Martin Ba

25

디렉토리 포함 환경 변수에 해당합니다 INCLUDE.

창에 표시된 디렉터리 설정은 Visual Studio가 소스 코드 파일에서 참조되는 포함 파일을 검색 할 디렉터리입니다. 환경 변수 INCLUDE에 해당합니다.

그동안 추가 디렉토리가 포함 합니다 (즉 명령 행 인수를 통해 전달되는 \I옵션).


19

포함 경로 구성

VC ++ 디렉터리 : 디렉터리 포함

  • 이 값은 Visual Studio 외부에 정의 된 INCLUDE Windows 환경 변수 에서 상속됩니다.
    • 환경 변수는 컴퓨터에 전역 적이거나 사용자 수준 범위 일 수 있습니다.
    • INCLUDELIB때 환경 변수가 생성됩니다 마이크로 소프트 윈도우 SDK가 함께 설치됩니다 비주얼 스튜디오 .

C / C ++ : 추가 포함 디렉터리

  • 프로젝트 수준 설정입니다 ... 솔루션의 모든 프로젝트에 대해이 값을 정의해야합니다.
  • 이 값은 소스 제어에 지속될 수 있습니다.

추가 참고 사항

어느 것을 사용해야합니까?

사용에 대한 결정은 디렉토리를 포함 또는 추가 디렉토리가 포함 조직의 개발 프로세스에 따라 달라집니다. 제 생각에는 더 중요합니다.

  • 일관되고 안정적으로 개발 환경을 재현 할 수 있음 (생각 : 다른 개발자에게 소스 코드 전달)
  • 조직 내 개발자는 일관된 접근 방식을 사용합니다.

매크로에 대한 참고 사항

  • C ++ 프로젝트 구성 매크로 (C ++ 전 처리기 #define지시문 과 혼동하지 말 것 )는 다른 소스의 콘텐츠를 상속합니다. 같은 매크로 ...
    • $(Include)Windows 환경 변수 에서 값 상속
    • $(OutDir)Visual Studio IDE 에서 값 상속

참고 문헌

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.