Programming

#include 종속성을 추적하는 도구

procodes 2020. 5. 26. 21:35
반응형

#include 종속성을 추적하는 도구


좋은 제안이 있습니까? 입력은 헤더 파일의 이름이되고 출력은 직접 또는 간접적으로 포함 된 모든 파일의 목록 (바람직하게는 트리)이어야합니다.


GCC / G ++에 액세스 할 수 있으면

-M옵션

이 종속성 목록을 출력합니다. 다른 도구가하는 추가 작업은 수행하지 않지만 컴파일러에서 제공되므로 "잘못된"위치에서 파일을 가져올 가능성은 없습니다.


KeithB에게 감사합니다. cl.exe (VS2008)에 대한 문서를 찾아서 / showIncludes 플래그를 찾았습니다. IDE에서는 CPP 파일의 속성 페이지에서 설정할 수 있습니다.

스크린 샷


중량 솔루션의 경우

doxygen을

확인해야합니다 . 그것은 코드베이스를 스캔하고 효과적으로 코드를 문서화하는 웹 사이트를 제공합니다. 그것이 보여주는 많은 것 중 하나는 나무를 포함한다는 것입니다.이 도구의 출력을 다른 프로세스에 꽂을 수 있었으면 작동하지 않을 수 있습니다 (doxygen은 다른 형식으로 출력하지만 실제로는 해당 기능에 익숙하지 않습니다). 그러나 의존성을 단순히 눈으로보고 싶다면 훌륭하게 작동해야합니다.


 

cinclude2dot

이라는 도구를 가지고 놀았습니다 . 여기서 일할 때 다소 큰 코드베이스를 처리하는 데 매우 유용했습니다. 나는 실제로 그것을 일일 빌드에 통합하는 것에 대해 생각했습니다.


먼저 cinclude2dot.pl은 C / C ++ 코드를 분석하고 graphviz에 입력하기위한 도트 파일로 #include 종속성 그래프를 생성하는 perl 스크립트입니다.

http://www.flourish.org/cinclude2dot/

그런 종류의 수동 도구를 사용하고 싶지 않다면 내 생각에 ProFactor의 "IncludeManager"라는 도구가 나옵니다.

http://www.profactor.co.uk/includemanager.php

무료 평가판이 있으며 훌륭합니다. 완전히 통합 된 Visual Studio 용 플러그인이므로 여기를 두 번 클릭하면 포함 된 곳으로 이동합니다.툴팁 마우스 오버는 원하는 모든 정보를 제공하며 드릴 다운 / 업, 관심없는 전체 하위 트리 제거, 그래프 이외의 표현보기, 이에 대한 일치 목록 순환 등을 수행 할 수 있습니다.만약 당신이 그것에 대해 빨리한다면, 당신은 시험이 다 떨어지기 전에 큰 프로젝트의 #include 구조를 리팩토링 할 수 있습니다. 그럼에도 불구하고 라이센스 당 약 $ 35의 비용이 들지 않습니다.그것이하는 일에 대해서는 거의 완벽합니다. #include 그래프뿐만 아니라 공유 파일의 프로젝트 의존성, 빌드 시간에 미치는 영향, 그리드의 세부 속성, 완벽한.


좋은 소식 :

redhat Source-Navigator

(Windows에서도 실행). 물론 컴파일러 스위치 (앞서 언급)는 우수한 구문 분석을 가지고 있으며 이것이 MFC, Qt 및 해당 마술 키워드를 어떻게 처리하는지 잘 모르겠습니다.

redhat 소스 네비게이터


 

KeithB의 답변

바탕으로 다음은 자동으로 1) 종속성 파일을 생성하고 2) 최신 파일을 유지하며 3) makefile에서 사용하는 GNUmake 구문입니다.

.dep:
    mkdir $@
.dep/%.dep: %.c .dep
    (echo $@ \\; $(CC) $(IFLAGS) -MM $<) > $@ || (rm $@; false)
.dep/%.dep: %.cpp .dep
    (echo $@ \\; $(CXX) $(IFLAGS) -MM $<) > $@ || (rm $@; false)
DEPEND := $(patsubst %.dep,.dep/%.dep,$(OBJ:.o=.dep))
-include $(DEPEND)

들여 쓰기를 하드 탭으로 변경하십시오.


 

makedepend를

확인할 수도 있습니다 .

http://en.wikipedia.org/wiki/Makedepend

http://www.xfree86.org/current/makedepend.1.html


C ++을 이해

하면 도움이 될 것입니다. Perl에서 액세스 할 수있는 데이터베이스를 빌드합니다.


cscope (

http://cscope.sourceforge.net/

)는 독립형 xterm에서이 작업을 수행하며 즐겨 사용하는 편집기 내에서 사용할 수 있습니다. 뛰어난 emacs 및 vi / vim 지원 기능이 있습니다.


무료 도구

포함 파일 종속성 감시자가 있습니다

참고 URL :

https://stackoverflow.com/questions/42308/tool-to-track-include-dependencies

반응형