[Doxygen] ์์ฃผ ์ฌ์ฉํ๋ ์์ค ์ฝ๋ ์ฃผ์ ๋ฐ ํ์ด์ง ๋ฌธ๋ฒ ์ฌ์ฉ ๋ฐฉ๋ฒ(์์ ํฌํจ)
Doxygen ์ฌ์ฉ์ ์ํ ๋ณธ๋ฌธ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
[Doxygen] ๋ ์์ ์ผ๋ก ์ฝ๋ ๋ฌธ์ ๋ง๋ค๊ธฐ ์ด์ ๋ฆฌ (์์ ํฌํจ)
[Doxygen] ๋ ์์ ์ผ๋ก ์ฝ๋ ๋ฌธ์ ๋ง๋ค๊ธฐ ์ด์ ๋ฆฌ (์์ ํฌํจ)
๋ ์์ (Doxygen)์ด๋? ํน์ ํน์ ํ์ฌ์์ ์ ๊ณตํ๋ SDK(Software Development Kit)๋ฅผ ์ฌ์ฉํด ๋ณธ ๊ฒฝํ์ด ์๋์? ์๋ค๋ฉด, ์ฒ์ ์ฌ์ฉํ๋ SDK๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ํผ๋ฐ์ค ๋งค๋ด์ผ์ ์ฝ์ด๋ณธ ์ ์ด ์๋์? SDK๋ฅผ ์ฌ
luckygg.tistory.com
Doxygen ๋ฌธ๋ฒ
๋ ์์ ์ ๋งํฌ๋ค์ด(Markdown)๊ณผ HTML, XML ๋ช ๋ น์ด ๋ชจ๋ ์ง์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ Doxygen ๋ฌธ๋ฒ๋๋ก ์์ฑํด์ผ ํฉ๋๋ค. Doxygen์ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๋ณธ๋ฌธ์์๋ ๊ทธ์ค์์๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฌธ๋ฒ๋ง ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
Doxygen์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ์๋ ๋งํฌ๋ฅผ ๋จผ์ ์ฐธ๊ณ ํ์ ๋ ๋๊ฒ ์ต๋๋ค.
https://www.doxygen.nl/manual/docblocks.html
Doxygen Manual: Documenting the code
This chapter covers two topics: How to put comments in your code such that doxygen incorporates them in the documentation it generates. This is further detailed in the next section. Ways to structure the contents of a comment block such that the output loo
www.doxygen.nl
์์ผ๋ก ์ด์ด์ง ์ค๋ช ์๋ ์์ค ์ฝ๋์์ ์ฃผ์์ ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ด์ง๋ฅผ ์ถ๊ฐํ๊ณ ํ์ด์ง์์ ๋ณธ๋ฌธ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์์ค ์ฝ๋์ ์ฃผ์ ์์ฑ ๋ฐฉ๋ฒ
Doxygen ์ฃผ์ ํ์
๋
์์ ์ฃผ์์ ์์์ /*!
์ด๊ณ , ๋์ */
์
๋๋ค. ์ด ๋ฐฉ๋ฒ ์ธ์๋ ///
๋๋ /**
๋ ์๊ธด ํ์ง๋ง, ๊ฐ์ธ์ ์ธ ์ทจํฅ์ผ๋ก ์๋ ๋ฐฉ์์ ์ ํธํฉ๋๋ค.
/*! * ๋ฉ์์ง */
๊ทธ๋ฆฌ๊ณ ๋ฉ์์ง๋ฅผ ๋จ๊ธธ ๋ ๋งจ ์์ *
ํ์๋ ์์ด๋ ๋์ง๋ง, ์ด๊ฒ๋ ์ทจํฅ ์ฐจ์ด์
๋๋ค.
๋
์์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ๋ \
๋๋ @
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์๋ ์๋์ ๊ฐ์ต๋๋ค.
/*! @section */ /*! \section */
namespace, class ์ฃผ์ ๋ฌ๊ธฐ
namespace
์ class
ํ์์ ๊ฐ๋จํฉ๋๋ค.
/** * @namespace Figure * @brief [๋ชฉ๋ก์ ๋ณด์ฌ์ง๋ ์งง์ ์ค๋ช
] */ namespace Figure { /** * @class Line * @brief [๋ชฉ๋ก์ ๋ณด์ฌ์ง๋ ์งง์ ์ค๋ช
] */ class Line : public IFigure { //... } }
์ ์ฃผ์์ ์๋์ ๊ฐ์ด ํ์๋ฉ๋๋ค. ์ฌ์ค @namespace [์ด๋ฆ]
๋๋ @class [์ด๋ฆ]
์ ๊ตณ์ด ์ ์ง ์๊ณ , namespace
๋ class
๋ฐ๋ก ์์ @brief [์ค๋ช
]
๋ง ์ ์ด๋ ๋ฉ๋๋ค.
![namespace์ class์ ์ค๋ช
namespace์ class์ ์ค๋ช](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํจ์ ์ฃผ์ ๋ฌ๊ธฐ
ํจ์์ ์ฃผ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋์ ๊ฐ์ด ์์ฑํฉ๋๋ค.
/** * @details ๋ ์ ์๋ฅผ ๋ํ๋ ๋์์ ์ํํฉ๋๋ค. * @param[in] a ์ซ์1 * @param[in] b ์ซ์2 * @param[out] c ๊ฒฐ๊ณผ * @return void */ void Sum(int a, int b, int *c);
์ ๊ธฐ๋ณธ ํ์ bug๋ todo, see also, example ๋ฑ์ ๋ด์ฉ๋ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด์ ๋ํ ๋ด์ฉ์ ๊ณ์ํด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
ํ ์ผ(To Do), ์ฃผ์ ์ฌํญ(Warning) ๋ฑ ์ฌ์ฉ์์๊ฒ ์ฐธ๊ณ ๋ฉ์์ง ํ์ํ๊ธฐ
![๋ฉ์์ง ํ์ ๋ฉ์์ง ํ์](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
SDK ๋ํผ๋ฐ์ค ๋งค๋ด์ผ(Reference Maunal)์์ ์๋์ ํ์ํ ์ฐธ๊ณ (see also) ๋๋ ์์ ๊ฐ์ด ๊ฒฝ๊ณ (warning)๋ ์ ์ ์กฐ๊ฑด(precondition)์ ๋ณธ ์ ์ด ์์ ๊ฒ๋๋ค.
![์ฐธ๊ณ (see also) ๋งํฌ ์ฐธ๊ณ (see also) ๋งํฌ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
์์ ๊ฐ์ ๋งํน์ ์๋์ ๋ฌธ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
* @note ์ฐธ๊ณ ์ค๋ช
* @todo ํ ์ผ ์ค๋ช
* @pre ๋ฏธ๋ฆฌ ํธ์ถํด์ผ ํ ์ฌํญ * @bug ๋ฒ๊ทธ ์ค๋ช
* @warning ์ฐธ๊ณ ๋งํฌ, ํ์ด์ง * @see ์ฐธ๊ณ ํ ํจ์ ๋๋ ํ์ด์ง
์๋์ ๊ฐ์ด ์์ฑํ๊ณ ๋ฌธ์๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
/** * @details ๋ ์ ์๋ฅผ ๋ํ๋ ๋์์ ์ํํฉ๋๋ค. * @param[in] a ์ซ์1 * @param[in] b ์ซ์2 * @param[out] c ๊ฒฐ๊ณผ * @return void * @warning int ํ๋ง ์ง์ํฉ๋๋ค. * @bug ๋ฒ๊ทธ ์ฌํญ * @todo ํด์ผ ํ ์ผ * @see ์ด๊ณณ์ ํ์ด์ง, ํจ์ ์ด๋ฆ์ ์์ฑํ๋ฉด ์๋ ๋งํฌ๋ฉ๋๋ค. Sub() ์ฐธ๊ณ . */ void Sum(int a, int b, int *c);
๋งจ ๋ง์ง๋ง ์ฐธ๊ณ ์ Sub()
์ ๋งํฌ๊ฐ ์๋ ์์ฑ๋์ด ์ฐ๊ฒฐ๋ฉ๋๋ค.
![ํจ์์ ๋ฉ์์ง ํ์ํ๊ธฐ ํจ์์ ๋ฉ์์ง ํ์ํ๊ธฐ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํจ์์ ์์ ์ฝ๋(Example code) ์ฐ๋ํ๊ธฐ
ํจ์ ์ค๋ช
์๋์ ์์ ์ฝ๋๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ฐธ๊ณ ํ๋ผ๊ณ ๊ฐ์กฐํ ์ ์์ต๋๋ค. ๋จ, Doxywizard์์ EXAMPLE_PATH
์ ์ํ ์ฝ๋๊ฐ ์ถ๊ฐ๋์ด ์์ด์ผ ํฉ๋๋ค.
/** * @details ๊ทธ๋ฆฌ๋ ๋์์ ํฉ๋๋ค. * @param g Graphics Handle * @return void * @note ์ฌ์ฉ์์๊ฒ ์๋ ค์ฃผ๊ณ ์ถ์ ๋ด์ฉ ์์ฑ * @pre ํด๋น ํจ์ ํธ์ถ ์ ํ์ ์ฌํญ ์์ฑ * @bug ๋ฒ๊ทธ๊ฐ ์๋ค๋ฉด ์์ฑ * @warning ์ฃผ์ ์ฌํญ ์์ฑ */ virtual void Draw(Gdiplus::Graphics* g) override; /** \example example.cpp * ์ด ์์ ๋ Figure::Line Class๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ Figure::Line Class๋ฅผ ์ฐธ๊ณ ํ์ธ์. */
Doxygen GUI์์ Exptert > Input > EXAMPLE_PATH ํญ๋ชฉ์ ์ํ ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ์ธ์.
์ ์์ ์ฝ๋์ ๋ฌธ์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. API ์ค๋ช ํ๋จ์ ์์ ๊ฐ ์ถ๊ฐ๋์๊ณ , Navigation์๋ ์์ ๋ชฉ๋ก์ด ์ถ๊ฐ๋์ต๋๋ค. example.cpp๋ฅผ ํด๋ฆญํ๋ฉด ์์ ์ฝ๋์ ์ค๋ช ์ด ๋ณด์ ๋๋ค.
![example code ์ถ๊ฐํ ๊ฒฐ๊ณผ example code ์ถ๊ฐํ ๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํ์ด์ง ์์ฑ ๋ฐฉ๋ฒ
์ ๋ ๊ด๋ฆฌ์ ํธ์์ฑ์ ์ํด ํ์ด์ง๋ฅผ ์ํ ๋ณ๋์ ํ
์คํธ ํ์ผ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์์ค ์ฝ๋์ ์ฃผ์์ *.h
์์ ์์ฑํ๊ณ , ํ์ด์ง๋ *.txt
์์ ๊ด๋ฆฌํ๋ ๊ฒ์ด์ฃ .
์ผ๋ฐ ๋ฉ๋ชจ์ฅ์ผ๋ก *.txt
ํ์ผ์ ์์ฑํ๋ฉด UTF-8 ํฌ๋งท์ผ๋ก ํ๊ธ์ด ๊นจ์ง๊ฒ ๋ฉ๋๋ค. Notepad++ ๋๋ Visual Studio์์ ์ผ๋ฐ ํ
์คํธ ํ์ผ์ ์์ฑํ์ฌ CP949 ๋๋ EUC-KR ํฌ๋งท์ ์ฌ์ฉํด์ผ ํ๊ธ์ด ์ ์์ ์ผ๋ก ํ์๋ฉ๋๋ค.
๋ฉ์ธ ํ์ด์ง ์ถ๊ฐํ๊ธฐ
ํ ์คํธ ํ์ผ์ ์์ฑํ๊ณ ์๋์ ๊ฐ์ด ์ฃผ์์ ์์ฑํฉ๋๋ค.
/*! @mainpage ๋ฉ์ธ ํ์ด์ง * ๋ด์ฉ */
๋ฉ์ธ ํ์ด์ง๋ ๋งค๋ด์ผ ํ์ผ ์คํ ์ ์ต์ด๋ก ๋ณด์ด๋ ํ์ด์ง์ ๋๋ค.
์๋ธ ํ์ด์ง ์ถ๊ฐํ๊ธฐ
๋ฉ์ธ ํ์ด์ง ์ธ์๋ ์ผ๋ฐ ํ์ด์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ผ๋ฐ ํ์ด์ง๋ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์์ ์์ฑํฉ๋๋ค.
/*! @page subpage_1 ์๋ธ ํ์ด์ง * ๋ด์ฉ */
์ฐธ๊ณ ๋ก subpage_1์ ํด๋น ํ์ด์ง์ ์ด๋ฆ์ ๋๋ค. ๋ค๋ฅธ ๊ณณ์์ ์ด ์ด๋ฆ์ ์์ฑํ๋ฉด ์๋์ผ๋ก ํด๋น ํ์ด์ง๋ก ๋งํฌ๋๋ ๊ฒ์ด์ฃ .
๋ฉ์ธ ํ์ด์ง์์ ์๋ธ ํ์ด์ง ์ฐ๋ํ๊ธฐ
๋ฉ์ธ ํ์ด์ง์์ ์๋ธ ํ์ด์ง๋ฅผ ์ด๋ป๊ฒ ์ฐ๋ํ๋์ง ๋ณด๊ฒ ์ต๋๋ค. ๋ฉ์ธ ํ์ด์ง๋ @mainpage
์ปค๋งจ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
/*! @mainpage ๋ฉ์ธ ํ์ด์ง * Doxygen ๋งค๋ด์ผ์ ์คํํ๋ฉด ๋ณด์ฌ์ง๋ ์ฒซ ํ์ด์ง์
๋๋ค.\n * Doxygen์ ์ฌ์ฉํ๋๋ฐ ์์ด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ ๋ฐฉ๋ฒ์ @subpage tips_page ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์.\n */
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ชฉ์ฐจ๋ฅผ ๋ณด๋ฉด '๋ฉ์ธ ํ์ด์ง'์ 'Doxygen ํ'์ด๋ผ๋ ํ์ด์ง๊ฐ ํ์๋ก ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ์ธ ํ์ด์ง์ ๋ด์ฉ์๋ 'Doxygen ํ'์ด๋ผ๋ ๋งํฌ๊ฐ ๊ฑธ๋ ค์๊ณ , ํด๋ฆญํ๋ฉด ํด๋น ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
![๋ฉ์ธ ํ์ด์ง์ ์๋ธ ํ์ด์ง ์ฐ๋ ๊ฒฐ๊ณผ ๋ฉ์ธ ํ์ด์ง์ ์๋ธ ํ์ด์ง ์ฐ๋ ๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํ์ด์ง์์ ์น์ (Section) ์ถ๊ฐํ๊ธฐ
ํ๋์ ํ์ด์ง์ ๋ง์ ๋ด์ฉ์ ์์ ํ๋ค ๋ณด๋ฉด, ์น์
์ ๋๋๋ ๊ฒ์ด ๊ฐ๋
์ฑ์ ์ข์ต๋๋ค. ์ด๋ฌํ ์น์
์ @section
์ปค๋งจ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
/*! @page subpage_1 ์๋ธ ํ์ด์ง * * @section section_1 ์น์
1 * ๋ด์ฉ */
section_1๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์น์ ์ ์ด๋ฆ์ ๋๋ค. ํ์ด์ง ๋ด์์ ์น์ ์ด๋ฆ์ ์์ฑํ๋ฉด ์๋์ผ๋ก ํด๋น ์น์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
์๋ธ ์น์ (Subsection) ์ถ๊ฐํ๊ธฐ
์น์
๋ด์์๋ ํ์ ์น์
์ด ํ์ํ ๋ ์ฐ์ด๋ ๋ช
๋ น์ด์
๋๋ค. @subsection
์ปค๋งจ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
* @section procedure_sec Step by step ์ ์ฐจ ์์ * ์ด๋ค ์ ์ฐจ์ ๋ํ ์์๋ฅผ ์ค๋ช
ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.\n * ์๋์ ๊ฐ์ด Section ๋งํฌ๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ค๋ช
์ ์์ฑํ ์ ์์ต๋๋ค.\n * @ref step1 ๊ณผ @ref step2 ๋ฅผ ์ฃผ์ ๊น๊ฒ ์งํํ์ธ์. * * @subsection step1 Step 1 * 1๋จ๊ณ์ ๋ํ ์ค๋ช
. * @subsection step2 Step 2 * 2๋จ๊ณ์ ๋ํ ์ค๋ช
.
์น์
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, step1๊ณผ step2๋ ์๋ธ ์น์
์ ์ด๋ฆ์
๋๋ค. ์ ์์์ฒ๋ผ @ref step1
์ ์์ฑํ๋ฉด step1์ด ์๋ ๋งํฌ๋ฉ๋๋ค.
![์๋ธ ์น์
์ถ๊ฐ๋ ๋ชจ์ต ์๋ธ ์น์
์ถ๊ฐ๋ ๋ชจ์ต](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
๋ชฉ์ฐจ(TOC, Table of Contents) ๋ง๋ค๊ธฐ
ํ๋์ ํ์ด์ง์ ๋ง์ ์น์ ์ ๋๋๋ฉด, ์ผ๋ฐ ์ฌ์ฉ์๋ ๋ฌด์จ ๋ด์ฉ์ด ์๋์ง ์๊ธฐ๋ ํ๋ค๊ณ ์ผ์ผ์ด ์คํฌ๋กค ๋ด๋ฆฌ๊ธฐ๋ ํ๋ญ๋๋ค. ์ด๋ฅผ ์ํด ํ์ด์ง ์๋จ์ ๋ชฉ์ฐจ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ํธ๋ฆฌํ๊ฒ ์ฃ ?
/*! @page subpage_1 ์๋ธ ํ์ด์ง * @tableofcontents * * @section section_1 ์น์
1 * ๋ด์ฉ */
@tableofcontents
๋ฅผ ์ถ๊ฐํ๋ฉด ์๋์ผ๋ก ๋ชฉ์ฐจ๋ฅผ ์์ฑํด ์ค๋๋ค.
![ํ์ด์ง์ ๋ชฉ์ฐจ๊ฐ ์์ฑ๋ ๋ชจ์ต ํ์ด์ง์ ๋ชฉ์ฐจ๊ฐ ์์ฑ๋ ๋ชจ์ต](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํ์ดํผ๋งํฌ(Hyperlink) ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
๋ณธ๋ฌธ์ ์ค๋ช ์ ์์ฑํ๋ค ๋ณด๋ฉด, ์ธ๋ถ ์ฌ์ดํธ ์ฃผ์๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค.
* @section link_sec ๋งํฌ ์ฝ์
์์ * ๋ค์๊ณผ ๊ฐ์ด ๋งํฌ๋ฅผ ์ฝ์
ํ ์ ์์ต๋๋ค. * [LuckyGg](https://luckygg.tistory.com/)์ ์ค์๋ฉด ๊ฐ๋ฐ์ ๊ด๋ จ๋ ๋ง์ ์ ๋ณด๋ฅผ ๋ณด์ค ์ ์์ต๋๋ค.\n * @note ์์ฃผ ๋ฐฉ๋ฌธํด์ฃผ์ธ์ :)
์๋์ ๊ฐ์ด LuckyGg ๋จ์ด์ ํ์ดํผ๋งํฌ๊ฐ ์ถ๊ฐ๋์ด, ํด๋ฆญํ๋ฉด ํด๋น ์ฌ์ดํธ๋ก ์ด๋ํ๊ฒ ๋ฉ๋๋ค.
![ํ์ดํผ๋งํฌ ์ถ๊ฐ๋ ๋ชจ์ต ํ์ดํผ๋งํฌ ์ถ๊ฐ๋ ๋ชจ์ต](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
์์ค ์ฝ๋์ ํด๋์ค ๋๋ ํจ์ ์ฐ๋ ๋ฐฉ๋ฒ
ํ์ด์ง์์ ์์ค ์ฝ๋์ ์กด์ฌํ๋ ํด๋์ค ๋๋ ํจ์๋ฅผ ์ธ๊ธํ ์๋ ์๋๋ฐ์. ๋งํฌ๋ ์๋ ์์ฑ๋๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ๋จ, ๋ค์์คํ์ด์ค๊ฐ ์กด์ฌํ๋ค๋ฉด ์ ์ฒด ๋ค ์์ฑํด์ผ ํฉ๋๋ค.
Figure::IFigure
๋ง์ฝ, ๋ค์์คํ์ด์ค๋ ์ ์ธํ๊ณ ํด๋์ค ์ด๋ฆ์ด๋ ํจ์ ์ด๋ฆ๋ง ์์ฑํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
\ref Figure::IFigure "IFigure"
@ref
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ Figure::IFigure
๋ฅผ IFigure
๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฐ๋ํ๋ ๊ฒ์ด์ฃ .
![ํด๋์ค ๋๋ ํจ์ ์ฐ๋ ๊ฒฐ๊ณผ ํด๋์ค ๋๋ ํจ์ ์ฐ๋ ๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํ(Table) ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
ํด๋์ค๋ฅผ ์ค๋ช ํ๋ ํ๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. ์์์ ์ค๋ช ํ ํด๋์ค ์ด๋ฆ๋ ๋ฃ์ด ๋ดค์ต๋๋ค.
* @section table_sec ํ ์ฝ์
์์ * ํ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ์
ํฉ๋๋ค. * ํญ๋ชฉ | ์ค๋ช
* --------------------------------|--------------------------------- * \ref Figure::IFigure "IFigure" | ๋ํ ์ธํฐํ์ด์ค * \ref Figure::Line "Line" | IFigure๋ฅผ ์์๋ฐ์ Line Class
์์ฃผ ๊ฐ๋จํ์ฃ ?
![ํ ์ฝ์
๊ฒฐ๊ณผ ํ ์ฝ์
๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
ํ์ ์ ๋ณํฉ ๋ฐฉ๋ฒ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
https://www.doxygen.nl/manual/markdown.html#md_tables
Doxygen Manual: Markdown support
Markdown support was introduced in doxygen version 1.8.0. It is a plain text formatting syntax written by John Gruber, with the following underlying design goal: The design goal for Markdown's formatting syntax is to make it as readable as possible. The id
www.doxygen.nl
์ด๋ฏธ์ง ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
๋จผ์ , Doxygen GUI์์ Expert > Input > IMAGE_PATH์ ์ด๋ฏธ์ง ํ์ผ์ด ์กด์ฌํ๋ ํ์ผ ๋๋ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
* @section image_sec ์ด๋ฏธ์ง ์ฝ์
์์ * ์ด๋ฏธ์ง๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ์
ํฉ๋๋ค. * @image html test_image.png "์บก์
์ฝ์
"
![์ด๋ฏธ์ง ์ฝ์
๊ฒฐ๊ณผ ์ด๋ฏธ์ง ์ฝ์
๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
์ธ์ฉ ๋ฌธ๊ตฌ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
์ธ์ฉ ๋ฌธ๊ตฌ๋ >
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ ์ค ๋๋ ์ฌ๋ฌ ์ค๋ ๊ฐ๋ฅํฉ๋๋ค.
* @section quote_sec ์ธ์ฉ ๋ฌธ๊ตฌ ์ฝ์
์์ * ์ธ์ฉ ๋ฌธ๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ์
ํฉ๋๋ค. * > LuckyGg์ Doxygen์
๋๋ค.\n * > ์ด๋ ๊ฒ ์ฌ๋ฌ ์ค ์ฝ์
์ด ๊ฐ๋ฅํฉ๋๋ค.
![์ธ์ฉ ๋ฌธ๊ตฌ ์ฝ์
๊ฒฐ๊ณผ ์ธ์ฉ ๋ฌธ๊ตฌ ์ฝ์
๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
์ฝ๋ ์์(Code snippet) ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
๋ณธ๋ฌธ์์ ์ฝ๋ ์์๋ฅผ ์ค๋ช
ํ๋ ๊ฒฝ์ฐ๋ ์๊ฒ ์ฃ . ์ฝ๋๋ @code{.cpp}
๋ก ์์ํ์ฌ @endcode
๋ก ๋๋ฉ๋๋ค.
* @section code_sec ์ฝ๋ ์ฝ์
์์ * ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ์
ํฉ๋๋ค. ์๋์ผ๋ก ํด๋์ค ๋ฐ ํจ์๊ฐ ๋งํฌ๋ฉ๋๋ค. * @code{.cpp} * #include "Line.h" * Figure::Line object; * object.Draw(); * @endcode
![์ฝ๋ ์์ ์ฝ์
๊ฒฐ๊ณผ ์ฝ๋ ์์ ์ฝ์
๊ฒฐ๊ณผ](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
๋ ์์ธํ ๋ ์์ ์ปค๋งจ๋๋ฅผ ํ์ธํ๋ ค๋ฉด ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
https://www.doxygen.nl/manual/commands.html
Doxygen Manual: Special Commands
Introduction All commands in the documentation start with a backslash (\) or an at-sign (@). If you prefer you can replace all commands starting with a backslash below by their counterparts that start with an at-sign. Some commands have one or more argumen
www.doxygen.nl
'Programming > Doxygen' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[Doxygen] ๋ ์์ ์ผ๋ก ์ฝ๋ ๋ฌธ์ ๋ง๋ค๊ธฐ ์ด์ ๋ฆฌ (์์ ํฌํจ)
[Doxygen] ๋ ์์ ์ผ๋ก ์ฝ๋ ๋ฌธ์ ๋ง๋ค๊ธฐ ์ด์ ๋ฆฌ (์์ ํฌํจ)
2021.11.07 -
[Doxygen] Doxywizard(Doxygen GUI) ํ๋ก์ ํธ ๊ธฐ๋ณธ ์ค์ ๋ฐฉ๋ฒ
[Doxygen] Doxywizard(Doxygen GUI) ํ๋ก์ ํธ ๊ธฐ๋ณธ ์ค์ ๋ฐฉ๋ฒ
2021.10.28 -
[Doxygen] HTMLHelp๋ก chmํ์ผ ๋ง๋ค๊ธฐ(+ ๋ชฉ์ฐจ ํ๊ธ ๊นจ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ)
[Doxygen] HTMLHelp๋ก chmํ์ผ ๋ง๋ค๊ธฐ(+ ๋ชฉ์ฐจ ํ๊ธ ๊นจ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ)
2021.10.24 -
[Doxygen] Graphviz ์ ์ฉํ์ฌ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ํ์ํ๊ธฐ
[Doxygen] Graphviz ์ ์ฉํ์ฌ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ํ์ํ๊ธฐ
2021.10.19
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.