doxygen graphviz "Problems running dot" class diagram
Fixes Doxygen class diagrams failing with Problems running dot from Graphviz. Use when Doxygen reports problems running dot. Not for name-resolution warnings.
TL;DR
Install Graphviz so the dot executable is on PATH, or point DOT_PATH at it. Doxygen shells out to dot for every diagram; a missing binary fails them all.
Error
Problems running dot: exit code=1, command='dot', arguments='...'Steps
- Check dot directly: run
dot -Vin the same environment as the Doxygen run. Expected: a version string, or "command not found" telling you it is missing. - Install Graphviz via your OS package manager, or download it for the build machine. Expected:
dot -Vnow prints a version. - If dot lives outside PATH, set
DOT_PATHin the Doxyfile to the directory containing it. Expected: Doxygen finds the binary without PATH changes. - Re-run
doxygen Doxyfile. Expected: class diagrams render and the dot warnings disappear.
When to use
- Doxygen logs "Problems running dot"
- Diagrams are blank or missing in the output
- CI or Docker builds lack Graphviz while local builds work
When not to use
- You do not want diagrams at all (set HAVE_DOT = NO instead)
- dot runs but a specific diagram errors (check that diagram's input)
- The failure is a Doxygen crash, not a dot failure
Tool compatibility
Doxygen 1.9 through 1.12 with Graphviz 2.4x through 10.x.
Variant phrasings
dot found but diagrams still fail
The dot version may be too old for the output format. Upgrade Graphviz or set DOTIMAGEFORMAT to a supported type.
problems running dot only in CI
Install graphviz in the CI image; developer laptops usually have it, containers usually do not.
Why it happens
HAVE_DOT defaults to YES, so Doxygen attempts diagrams on every run. The dependency is external and often absent from minimal build environments, and Doxygen reports the failure per diagram rather than once.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_pvxXhLNEMfdkqhY7LI3GQw