programing

#의존관계추적도구

firstcheck 2022. 7. 27. 21:59
반응형

#의존관계추적도구

좋은 제안 있어요?입력은 헤더 파일의 이름이 되며 출력은 직접 또는 간접적으로 모든 파일의 목록(가능하면 트리)이어야 합니다.

GCC/G++ 에 액세스 할 수 있는 경우는, 의존성 리스트가 출력됩니다.다른 툴이 하는 추가 작업은 하지 않지만 컴파일러에서 제공되므로 "잘못된" 위치에서 파일을 가져올 가능성은 없습니다.

KeithB 덕분입니다.cl.exe(VS2008) 문서를 검색했더니 /showIncludes 플래그를 발견했습니다.IDE에서 임의의 CPP 파일의 속성 페이지에서 설정할 수 있습니다.

스크린샷

첫 번째로 cinclude2dot.pl은 C/C++ 코드를 분석하여 #dependency 그래프를 graphviz에 입력하기 위한 닷 파일로 생성하는 perl 스크립트입니다.

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

이러한 수동 툴을 사용하고 싶지 않다면 ProFactor의 "IncludeManager"라는 툴이 훨씬 수월하다고 생각합니다.

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

무료 체험판이 있는데, 정말 멋져요.완전히 통합된 Visual Studio용 플러그인이므로 여기를 두 번 클릭하면 해당 플러그인이 포함된 위치로 이동합니다.

툴팁 마우스 오버를 사용하면 원하는 모든 정보를 얻을 수 있으며 드릴다운/업, 불필요한 서브트리 삭제, 그래프 이외의 표현 보기, 일치 목록 및 일치 목록 보기 등을 할 수 있어 매우 좋습니다.

신속하게 처리하면 평가판이 만료되기 전에 대규모 프로젝트의 #포함 구조를 재작성할 수 있습니다.그렇다고 해도, 라이센스 1건당 약 35달러의 비용이 드는 것은 아닙니다.

하지만 그것은 거의 완벽하다.#그래프 포함뿐만 아니라 공유 파일의 프로젝트 간 의존성, 빌드 시간에 미치는 영향, 그리드의 상세 속성도 완벽합니다.

무거운 용액의 경우 독시겐을 확인해야 합니다.코드 베이스를 스캔하여 효과적으로 코드를 문서화하는 웹사이트를 만듭니다.그것이 보여주는 많은 것 중 하나는 나무를 포함한다는 것이다.

이 툴의 출력을 다른 프로세스에 삽입할 수 있을 것 같으면 이 방법이 작동하지 않을 수 있습니다(doxygen은 다른 형식으로 출력하지만 저는 그 기능에 대해 잘 모릅니다).하지만 단순히 의존성을 주시하고 싶다면, 매우 효과적일 것입니다.

좋은 소식: redhat Source-Navigator (Windows에서도 실행)물론 컴파일러 스위치(앞서 언급한)는 뛰어난 해석 기능을 가지고 있으며, 이것이 MFC, Qt 및 그 매직 키워드를 어떻게 처리할지는 잘 모르겠습니다.

redhat 소스 네비게이터

저는 cinclude2dot이라는 도구를 가지고 놀았습니다.제가 여기 출근했을 때 꽤 큰 코드베이스를 습득하는 데 도움이 되었습니다.실제로, 장래적으로는 일상 구축에 통합하는 것을 생각하고 있습니다.

KeithB의 답변을 바탕으로 1) 의존관계 파일을 자동으로 생성하고 2) 의존관계 파일을 최신 상태로 유지하며 3) make 파일에서 사용하기 위한 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)

(인덴트는 반드시 하드탭으로 변경해 주세요.)

C++에 대한 이해가 도움이 됩니다.Perl에서 접근할 수 있는 데이터베이스를 구축합니다.

또한 makedependent를 확인할 수 있습니다.

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

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

cscope(http://cscope.sourceforge.net/)는 스탠드아론의 xterm으로 실행할 수 있습니다.또, 마음에 드는 에디터내에서 사용할 수도 있습니다.이 기능은, emacs 와 vi/vim 를 서포트하고 있습니다.

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

반응형