Windows下Doxygen的DOT路径环境变量

8

我的团队有使用Windows和Linux的开发人员。我们在版本控制系统中存储Doxyfiles。因此,我们将DOT_PATH留空,当我从代码库中拉取进行代码审查时,我总是需要在本地修改DOT_PATH。我能否以某种方式修改Windows中的PATH环境变量,使得当DOT_PATH为空时,Doxygen始终能找到Dot?文档让我觉得我应该能够这样做:

# The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_PATH               =

我编辑了我的Windows账户的PATH变量,加入了我的dot路径:C:\Program Files (x86)\Graphviz2.30\bin\,当我在命令行中键入path时,我可以看到这个路径,但是Doxygen似乎没有看到它。


看到了 Stan 的答案。我想知道您使用的 doxygen 版本是哪个(以及当前的 doxygen 版本是否仍存在问题)。我在我的 PATH 中也有 graphviz 路径(虽然是 2.38 版本),但没有任何问题。 - albert
2个回答

7

最近我们在使用doxygenPLANTUML时遇到了类似的问题,下面是解决方案。

在配置文件(Doxyfile)中,使用环境变量,例如:

PLANTUML_JAR_PATH      = $(PLANTUML_JAR_PATH)

在每个开发环境中,根据平台和特定的机器,使用正确的路径定义变量。例如,在我的Linux环境中:
malff@linux-8edv:GIT_TRUNK> uname -a
Linux linux-8edv 4.1.39-53-default #1 SMP PREEMPT Thu Mar 30 06:44:23 UTC 2017 (56cc5a0) x86_64 x86_64 x86_64 GNU/Linux
malff@linux-8edv:GIT_TRUNK> env | grep PLANTUML_JAR_PATH
PLANTUML_JAR_PATH=/home/malff/plantuml/plantuml.8053.jar

没有经过测试,但我认为类似的方法也适用于DOT_PATH


那正是我所需要的。 - Nick

2

您可以尝试在短名称符号(也称为8.3或DOS)中使用完整路径。它看起来像这样:

C:\PROGRA~1\COMMON~1\graphviz\bin\

您可以使用此shell脚本(您可以将其命名为shortpath.cmd)查找路径中的所有短名称:
@echo %~s1

脚本接受一个参数,将被翻译成简写格式,所以请像这样运行它:
shortpath.cmd "C:\Program Files\Common Files\graphviz\bin"

用你自己的Graphviz拷贝实际路径替换参数。感谢答案提供的帮助。


@albert,这是回答问题的答案,其中OP指定了一个没有引号的长名称路径。如果您认为路径周围的引号有帮助,您可以发布您的答案。从我的经验来看,在Windows 7上使用graphviz 2.38时,如果在引号中使用长路径,则进程会挂起并占用100%的CPU。这就是为什么我发布了针对我有效的替代方法。 - Stan
这如何回答我的原始问题? - Nick
1
@Nick,我的建议是在路径变量中尝试使用短名称符号。 - Stan
@Nick,还有一件事:你是在全局系统级别上设置路径,还是在特定的(可能是单独的)shell窗口中设置?后者不会影响其他进程树。 - Stan
@Stan 我通过高级系统设置以与您链接的页面描述相同的方式进行了设置。 - Nick
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接