doxygen에서 c 함수의 콜 및 발신자 그래프를 생성하는 방법
문서를 검토하고 doxy 설정 파일을 처음부터 끝까지 검토했습니다.컨피규레이션파일의 doxygen을 잘라내면 구조체 및 cpp 클래스의 문서와 인덱스가 작성되지만 소스 트리의 다수의 c 함수에 대한 콜 또는 발신자 그래프는 표시되지 않습니다.
이러한 콜트리와 발신자 트리를 생성하기 위한 doxygen 설정 방법을 가르쳐 주실 수 있습니까?Graphviz가 설치되어 있습니다.
설정하셔야 합니다.HAVE_DOT
,CALL_GRAPH
그리고.CALLER_GRAPH
로.YES
또, 에의 패스를 확인해 주세요.dot
에 있습니다.PATH
변수.
그래도 작동하지 않으면 다음 설정을 해야 할 수도 있습니다.EXTRACT_ALL
및/또는EXTRACT_STATIC
기능에 따라 달라집니다.
MacOS 사용자의 경우:
Doxygen 및 Graphviz를 다음과 같이 설치합니다.
brew install doxygen
brew install graphviz
프로젝트 폴더로 이동하여 터미널 세트에서 이 경로로 실행
doxygen -g
다음과 같은 이름의 Doxygen 파일이 생성됩니다.Doxyfile
임의의 에디터에서 이 파일을 열고 다음 파라미터를 찾아 해당 위치에서 값을 YES로 바꿉니다.
HAVE_DOT = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
DISABLE_INDEX = YES
GENERATE_TREEVIEW = YES
RECURSIVE = YES
이 Doxy 파일에서 프로젝트 이름을 설정할 수도 있습니다.파일을 저장한 후 단말기에서 다음 명령을 실행합니다.
doxygen Doxyfile
이렇게 하면 다음과 같은 이름의 폴더가 2개 더 생성됩니다.html
그리고.latex
으로 이동합니다.html
폴더 및 열기annotated.html
프로젝트의 모든 세부 정보를 볼 수 있습니다.html에 포함된 콜그래프의 png 이미지(일부 함수/클래스 등)도 표시됩니다.
GUI의 "Expert" 탭 컨트롤을 통해 경로를 "dot"(/usr/local/bin/)로 설정하면 문제가 없습니다.
doxywizard도 유용합니다.GUI의 모든 옵션을 제공합니다.옵션을 선택하면 해당 옵션에 대한 빠른 도움말이 표시됩니다.
또, 다음과 같은 것에 흥미를 가질지도 모릅니다.COLLABORATION_GRAPH
또는GRAPHICAL_HIERARCHY
.
꽤 편리하네요.
C global 함수에서도 같은 문제가 있었습니다.CLANG_ASSED_PARSING을 활성화하면 일부 함수의 콜그래프가 표시되지만 모든 함수의 콜그래프는 표시되지 않습니다.
언급URL : https://stackoverflow.com/questions/8887810/how-to-get-doxygen-to-produce-call-caller-graphs-for-c-functions
'IT이야기' 카테고리의 다른 글
GNU C 매크로 envSet(이름)에서 (void) " 이름은 무엇을 의미합니까? (0) | 2022.06.15 |
---|---|
Vuex가 mapState를 사용하여 매핑된 계산 변수를 업데이트하지 않음 (0) | 2022.06.15 |
Vuex 동적 확인란 바인딩 (0) | 2022.06.15 |
vuex 작업 및 jsdoc: 주입된 함수 매개 변수를 표시하는 방법 (0) | 2022.06.14 |
C for-loop의 조건에서는 왜 상수 대신 식을 사용하는가? (0) | 2022.06.14 |