Visual Studio에서 C ++ 파일의 #include 계층 표시 계층 구조를 표시하기위한 도구와 기술은 무엇입니까

문제점 : Visual Studio 2010으로 마이그레이션하려고하는 대규모 Visual C ++ 프로젝트가 있습니다. 다양한 소스와 다양한 연령대의 다양한 요소가 혼합되어 있습니다. 와를 모두 포함 winsock.h하고 있기 때문에 문제가 발생 winsock2.h합니다.

질문 :#include Visual Studio C ++ 소스 파일 의 계층 구조를 표시하기위한 도구와 기술은 무엇입니까 ?

cl /P처리기 출력을 얻는 것에 대해 알고 있지만 어떤 파일에 다른 파일이 포함되어 있는지 명확하게 표시하지는 않습니다 (이 경우 /P출력은 376,932 줄 길이 😎

완벽한 세계에서 나는 어떤 파일이 다른 파일과 라인 번호와 함께 포함되어있어 소스로 이동할 수있는 계층 적 표시를 원합니다.

source.cpp(1)
  windows.h(100)
    winsock.h
  some_other_thing.h(1234)
    winsock2.h


답변

설정이 있습니다 :

프로젝트 설정-> 구성 속성-> C / C ++-> 고급-> 포함 포함

트리를 생성합니다. 컴파일러 스위치 / showIncludes에 매핑됩니다.


답변

컴파일러는 / showIncludes 스위치도 지원합니다. 줄 번호는 제공하지 않지만 어디에서 왔는지에 대한 포괄적 인보기를 제공 할 수 있습니다.

프로젝트 설정-> 구성 속성-> C / C ++-> 고급-> 포함 포함에 있습니다.


답변

IncludeManager 가 매우 강력한 도구라는 것을 알았습니다 . 무료는 아니지만 비싸지는 않지만 포함 문제를 파악하고 사용하지 않은 많은 부분을 정리하여 컴파일 시간을 50 분에서 8 분으로 단축 할 수있었습니다.


답변

gcc의 계층 적 포함 기능만큼 좋지는 않습니다. 이는 오류 발생시 직접 라인 포함 계층 구조를 보여줍니다. VS의 “include include”옵션은 모든 것을 보여줍니다. 이는 계층 포함 파일 문제를 디버깅 할 때 과도합니다.


답변

다음 은 좋은 타사 FOSS 도구입니다. 발생 횟수 및 행 번호에 대한 데이터를 포함하는 결과를 XML로 내보낼 수 있습니다.


답변

이제 Visual Studio 용 플러그인 인 IncludeToolbox가 있습니다. 종속 포함을 나열하고 무작위 제거 및 컴파일과 같은 더 많은 작업을 수행하여 포함이 필요한지 확인할 수 있습니다.