관리 메뉴

c0smicb0y

doxygen 사용법 본문

프로그래밍/Linux

doxygen 사용법

2015. 12. 19. 23:56

환경: ubuntu 14.04


리눅스에서는 프로젝트의 소스코드들을 받아서 make를 통해 컴파일하여 사용할 때가 많다.


구조가 궁금하면 소스를 다 들여다 볼 수 있지만, 거대한 소스 집합들을 일일이 다 분석하기는 어렵다.


특히, 문서화가 잘 되어있지 않다면 한숨밖에 나오지 않는다.


이럴 때 분석을 수월하게 해주는 도구가 여러가지 있다. ctags, cscope 등등


그 중 프로젝트의 문서를 찾다보면 자주 나오는 doxygen을 사용하는 방법을 설명하고자한다.


먼저 설치할 패키지는 세가지이다.


그냥 doxygen

gui환경에서 작업이 가능한 doxygen-gui

다이어그램을 그려주는 graphviz


sudo apt-get install을 통해 모두 설치해주자.


1
sudo apt-get install doxygen
cs
1
sudo apt-get install doxygen-gui
cs
1
sudo apt-get install graphviz
cs








doxywizard를 통해 doxygen-gui를 실행하자


1
doxywizard
cs



다음과 같은 창이 실행될 것이다.






먼저 이 doxygen 프로젝트를 어디에 생성시킬지 선택한다.


필자는 i8086emu를 분석하고자한다.







프로젝트의 이름과 버전을 설정한다.


i8086emu 0.9.2를 분석할 것이기 때문에


프로젝트 이름은 i8086emu, 버전은 0.9.2로 설정하였다.





코드가 있는 디렉토리를 선택한다.






폴더 밑에 계층적으로 소스가 있을 수 있으니 재귀적으로 scan이 되도록 해주자





doxygen으로 만들어진 documentation을 어디에 생성시킬지 선택한다.





Mode를 선택하자






자기가 원하는 모드를 선택하면 된다.


필자는 모든 entity들과 cross-referenced source까지 포함시켰다.





소스코드가 무슨 언어로 되어있는지 선택한다.


c언어로 쓰여진 프로그램이라 C or PHP output에 최적화를 선택하였다.





Output으로 간다.





탐색이 수월하도록 navigation panel을 선택하자.




Diagrams로 가자.





graphviz를 사용할 것이기 때문에 Use dot tool from the GraphViz package를 선택하고 모두 체크해주자.





Expert 탭으로 이동하자.





출력 결과에 사용될 언어를 한국어로 바꿔주자.





분석의 편의를 위해 항상 상세 정보를 보여주는 ALWAYS_DETAILED_SEC 과

생성자와 소멸자를 제외한 상속된 모든 멤버를 보여주는 INLINE_INHERITED_MEMB 를 선택하자.






build로 이동하자.





C++이나 Java같은 객체지향언어로 쓰여진 소스코드는 private 변수와 static 변수까지 분석의 대상으로 만들 수 있다.





Source Browser로 이동하자.





함수 설명시 소스 코드도 볼 수 있도록 INLINE_SOURCES를 선택하자.





Dot으로 이동하자.





CLASS_DIAGRAMS를 선택하자.





다이어그램을 UML 형태로 볼 수 있도록 UML_LOOK을 선택한다.





DOT_PATH를 정해준다.


which dot 명령어를 통해 쉽게 알 수 있다.


1
which dot
cs







Run 탭으로 이동하여 Run doxygen을 눌러주면 이제 문서가 생성된다.





완료되었다면 Show HTML output을 통해 문서를 볼 수 있다.





'프로그래밍 > Linux' 카테고리의 다른 글

Qt5 Install on Ubuntu  (0) 2015.11.18
GDB TUI  (0) 2015.11.18
Linux Kernel  (0) 2015.10.29
Linux File System  (0) 2015.09.07
API & ABI  (0) 2015.09.05
Comments