note

Doxygen 적용시 고민거리

내가 제공하는 라이브러리에 대한 설명을 Header file에 적으면 해당 API를 이용하는 개발자들이 편할 것이고, source code에 적으면 소스 코드를 보는 개발자가 편할 것이고, 그렇다고 둘 다 적을 수는 없고(정보 불일치 발생 가능..)

뭐가 좋은 방법일까?

note

Doxygen generate duplicated prototype from source and header file

http://doxygen.10944.n7.nabble.com/Duplicate-functions-descriptions-td1478.html

C 파일에 정의한 함수를 header file에 extern으로 정의한 경우 Doxygen은 해당 함수가 C, H 에 모두 정의되어 있다고 인식해 버린다.

이 경우 해결 방법은

  • 우선 Doxygen을 최신 버전으로 업데이트. 현재 기준 1.8.5
  • Header file에 extern으로 정의한 prototype 전후를 이렇게 표시하면 Doxygen이 무시한다고
    /*! @cond INCLUDE_WITH_DOXYGEN */
    extern int foobar(int a);
    /*! @endcond */