在VS2008中将doxygen作为自定义构建步骤运行

4
我正在为我的(相当小的)项目生成doxygen文档,并在每次构建时执行此操作。我采取了以下步骤来完成此操作:
  1. 将doxygen生成的index.html添加到项目中。
  2. 为此文件指定自定义构建步骤(而不是整个项目)
    • 命令行:doxygen ../doc/Doxyfile
    • 输出:..doc/html/index.html
    • 其他依赖项:'../bin/foo.exe'
问题在于,我需要构建两次才能使VS停止告诉我我的项目已过期。如何解决这个问题?

我曾经遇到过完全相同的问题,即VS2008调用自动生成C#代码的Perl脚本。我的印象(可能是错误的)是,尽管有这一步骤,它仍然在内存中编译代码版本,而不是磁盘上的版本,然后注意到内存中的版本已经过时。 - Sol
希望有人知道如何修复它! - Sol
您已将一个生成的文件添加为源文件。 您需要反过来做。 - Roger Lipscombe
1个回答

3
在决定是否构建任何内容时,Visual Studio会查看输出文件是否早于输入文件。
您将index.html添加为输入文件,但实际上它是一个输出文件。添加Doxyfile也不起作用,因为它不会经常更改。这就是重新构建项目的原因(因为它忽略文件的年龄并进行构建)。
您想要捕捉的是C++文件中的更改。如果(正如我怀疑的那样)doxygen已进行增量构建,那么您最好将doxygen步骤作为后期构建事件添加。

谢谢你的回答,罗杰,但我恐怕不知道你的意思。<br> 我现在已经从项目中删除了index.html,改为添加了Doxyfile(这实际上更有意义!),并将自定义构建步骤设置应用于该文件。结果是doxygen根本没有被调用... ## 更新 ## 我刚刚注意到当重新构建解决方案时,实际上会调用doxygen。 虽然这不完全是我想要的,但它可能会奏效。 - foraidt

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