programing

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

nasanasas 2020. 9. 8. 08:02
반응형

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


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

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

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


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

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

It does work however. And it did get taken advantage of eventually. Empowering the Platform Toolset setting in VS2012 and up. Different compiler, different linker, different #include directories, different linker search path. Modified with just one setting, nice.


The Include Directories corresponds to the environment variable INCLUDE.

Directory settings displayed in the window are the directories that Visual Studio will search for include files referred to in your source code files. Corresponds to environment variable INCLUDE.

While the Additional Include Directories are passed via a command line argument (i.e. the \I option).


CONFIGURING INCLUDE PATHS

VC++ Directories: Include Directories

  • this value is inherited from the INCLUDE Windows environment variable which is defined outside of Visual Studio
    • environment variables can be: global to the computer or have user level scope
    • The INCLUDE and LIB environment variables are created when the Microsoft Windows SDK is installed with Visual Studio.

C/C++: Additional Include Directories

  • is a project level setting... you will have to define this value for every project in your solution
  • this value can be persisted to source control

ADDITIONAL NOTES

Which one should I use?

The decision to use Include Directories or Additional Include Directories will depend on your organization's development process. In my opinion, it is more important:

  • that you are able to consistently and reliably re-create the development environment (think: handing off source code to another developer)
  • for developers within an organization use a consistent approach

A Note About Macros

  • The C++ project configuration macros (not to be confused with C++ pre-processor #define directive) inherit content from different sources. Macros like...
    • $(Include) inherit their values from Windows environment variables
    • $(OutDir) inherit their values from Visual Studio IDE

REFERENCES

참고URL : https://stackoverflow.com/questions/6883276/what-is-the-difference-between-include-directories-and-additional-include-dir

반응형