Как сделать перекрестную ссылку на уже существующую документацию Doxygen? - PullRequest
3 голосов
/ 29 ноября 2010

У меня есть два C ++ проекта A и B;Зависимость только от B до A.

B  --> A

Я хотел бы отдельно запустить Doxygen для A и B соответственно, но все же разрешить мне возможную перекрестную ссылку на A из B doc.(То есть, когда я просматриваю B doc, я могу напрямую связываться с A doc, если в B используется какой-либо класс из A).

-

[Ответил из 0x4b:] если я установлю "CREATE_SUBDIRS" с YES и использую относительный путь для файлов тегов, Doxygen каким-то образом создаст неправильную ссылку на ссылку.

Я действительно следовал примеру.

 <root>
    +- proj
    |   +- html               HTML output directory for proj   
    |       +- d1
    |       |   +- d2
    |       |       .... (*.html)
    |       | 
    |         ...(*.html)
    |   +- src                sources for proj
    +- ext1
    |   +- html               HTML output directory for ext1
    |   |- ext1.tag           tag file for ext1
    |- proj.cfg               doxygen configuration file for proj
    |- ext1.cfg               doxygen configuration file for ext1

proj.cfg:
OUTPUT_DIRECTORY  = proj
INPUT             = proj/src
TAGFILES          = ext1/ext1.tag=../../ext1/html

ext1.cfg:
OUTPUT_DIRECTORY  = ext1
GENERATE_TAGFILE  = ext1/ext1.tag 

Документы ви html/, и html/d1/d2 хотели бы попробовать связать внешний документ, расположенный в ../../ext1/html.Очевидно, один из них потерпит неудачу.

1 Ответ

4 голосов
/ 29 ноября 2010

Возможно, вы захотите использовать функцию tagfile . При создании документации для A убедитесь, что опция GENERATE_TAGFILE установлена. Когда вы генерируете документацию для B, установите значение TAGFILES, чтобы включить результат из A.

[Обновление для адреса относительных путей]

Doxygen довольно хрупок, когда речь идет о [относительных] путях. Вы четко понимаете, что использование абсолютного пути решит проблему. Вы можете попробовать извлечь пользу из окружающей среды, например, используя

TAGFILES          = ext1/ext1.tag=$(PWD)/../ext1/html

для создания абсолютного пути. Это не идеально, но многие значения в Doxyfile зависят от того, где запущен doxygen, а не от того, где находится файл конфигурации.

...