본문 바로가기

Programming/Doxygen(문서화 도구)

Doxygen 사용기

728x90

현재 진행중인 C++ 프로젝트의 참조 문서를 작성하고자 Doxygen을 사용해봤다.

그리고 시각화 도구로 Graphviz를 사용했다.

기본적인 사용법은 아래 링크를 참고하여 익혔다.

Doxygen과 Graphviz 사용법 : http://5on7.blogspot.com/2016/01/08-01.html

 

Doxygen과 Graphviz

소개 및 설치와 설정 Doxygen이란? Doxygen은 소스파일에 작성된 내용을 바탕으로 문서 파일을 생성해주는 프로그램입니다. 지원하는 프로그래밍 언어로는 C, C++, Object-C, C#, PHP, JAVA, Python, For...

5on7.blogspot.com

 

2020.2.13 기준 doxygen의 최신버전은  1.8.17

출력 언어로 한국어를 선택하면 1.8.15 이후 버전은 업데이트가 되지 않았기 때문에 영어로 표시될 수 있다는 경고가 출력된다.

Run doxygen을 하면 출력되는 warning

Show HTML output을 눌러 결과물을 보면 감탄을 할 수 밖에 없다.

간단한 설정만으로 이런 퀄리티로 참조 문서를 제작해준다는게 놀랍다.

(아직 진행중인 프로젝트가 구현이 덜 된 상태라 우선은 디버깅할 때 참고용으로 참조 문서를 사용해야겠다ㅋㅋ)

완성된 프로젝트 참조 문서

 

코드에 포함된 한글도 깨지지 않고 정상적으로 출력된다

+추가 내용 1) Google test(Gmock)가 포함된 프로젝트에서 'Scan recursively'를 체크할 시 오류 발생

C:/Users/HOME/source/repos/week2/packages/Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1.8.1/build/native/include/gtest/gtest-message.h:59: warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon) error: C:/Users/HOME/source/repos/week2/packages/Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1.8.1/license (MIT).txt: failed to translate characters from EUC-KR to UTF-8: check INPUT_ENCODING

이런 오류가 발생했는데, 아마 프로젝트와 관련 없는 파일에서 인코딩 실패가 되어 그런 것 같다.

테스트코드 부분까지 한번에 문서화 할 예정은 아니었기 때문에 'Scan recursively' 체크해제해서 해당 부분이 포함되지 않도록 했다.

추후에 프로젝트가 커지고 하위 경로에 있는 모든 문서를 문서화에 포함해야 하는 경우에는 체크하겠지만, 부분적으로 문서화를 원한다면 설정을 어떻게 해야할지 모르겠다. (아마 프로젝트 디렉토리에 신경을 써서 하위 경로에 필요한 것들만 모여 있도록 해야하지 않을까싶다.)

Scan recursively 체크 해제시 오류 해결됨