我想为计算机视觉领域的项目,模块和库集合准备一份文档(主要用c ++编写).为此,我查看了OpenCV文档,您可能知道OpenCV 2.4.x文档基于Sphinx,这是我寻求的确切解决方案.Sphinx的优点是:
但我意识到OpenCV3.0的c ++版本是基于Doxygen记录的,我不知道为什么!因为它没有Sphinx那么有趣.我知道Doxygen可以编译你的代码并提取你的评论,这是一个有用的功能.我也知道有些库(如呼吸)可以作为Doxygen和Sphinx之间的桥梁.
现在我的问题是:
我即将开始研究一个涉及重构和修改c&c ++中现有代码的项目.代码是一个膨胀的代码,并且数量巨大.当然,由于代码需要修改,因此我们必须在非常短的时间内开发对代码的理解,因为我们有一些非常紧迫的项目进度表.任何人都可以建议任何有助于实现上述目标的开源工具.总之,我正在寻找的工具可以:
请告诉我任何值得关注的经历,偏好或收藏.
[编辑]想出了上面提供帮助的工具列表.这是清单:
UMLStudio
为您的OO遗留代码创建对象模型是分析,理解和维护它的最佳方法.UMLStudio可以比任何其他CASE工具更快地将C++,Java,CORBA IDL,PHP 5和Ada 95代码转换为OOA和D表示法.
CodeDrawer for C++
The CodeDrawer converts source code to visual based diagrams. Class, struct, and any elements of source code can be shown diagrams. It also shows the logics of a function and a method. The CodeDrawer helps understand source code of your project
Imagix
Reverse engineering and visualization of source code lead to improved program comprehension. Speeds:
Learning Unfamiliar Code
Change Impact …
我正在尝试在我们庞大的78,000文件C++代码库上设置自动Doxygen运行.它可以提取基本类型和层次结构信息,但我想更好地了解已经存在的文档注释.
多年来积累的大多数评论都遵循一般模式,尽管不是Doxygen预期的模式.他们大多看起来像
// class description
class foo
{
// returns ascii art of a fruit
const char* apples( void );
// does something to some other thing
customtype_t baz( foo &other );
enum
{
kBADGER, // an omnivorous mustelid
kMUSHROOM, // tasty on pizza
kSNAKE, // oh no!
};
}
Run Code Online (Sandbox Code Playgroud)
这是双重削减,而不是Doxygen期望的///或//!风格评论.
搜索和替换所有这些评论的文件太多了,而且我的许多程序员对于在代码中看到三重斜杠都非常过敏,所以我想找到一些方法让Doxygen读取普通评论作为JavaDoc评论,当他们在正确的地方.有没有一种方法,使Doxygen的阅读//作为///?
我找不到任何这样的配置参数,所以我想我需要以某种方式转换输入.一般来说,我使用的规则是:
///
注释. //
评论在同一行后面有声明,则将其视为a///<但我不知道怎么去教Doxygen这条规则.我能想到的两种方式是:
//s转换为///s,如上所述.但是这种转换太复杂了,不能作为正则表达式,我真的不想写一个完整的C++解析器只是为了将输入提供给另一个C++解析器!此外,为每个文件启动一个INPUT_FILTER程序会降低Doxygen的速度:在我们的源代码中运行已超过30分钟,并且添加一个INPUT_FILTER …我试图在Doxygen生成的HTML中手动指定图像大小.但是,正如我在文档中看到的那样,只有在使用LaTeX输出时才会发生这种情况.这里有人知道任何解决方法吗?
举个例子,我想做这样的事情:
\image html example.png "Caption" width=10px
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果我有以下内容:
/**
* @brief (x,y,z) points for block
*/
int x, y, z;
Run Code Online (Sandbox Code Playgroud)
它只会生成x的文档,是否可以在doxygen中使用一条注释对所有x,y和z进行注释?
编辑按照envu的建议,我现在有以下内容(基于http://www.doxygen.nl/manual/grouping.html#memgroup)
//@{
/** some documentation here */
int x, y, z;
//@}
Run Code Online (Sandbox Code Playgroud)
要么
//@{
/**
* @brief some documentation here
*/
int x, y, z;
//@}
Run Code Online (Sandbox Code Playgroud)
然而,这两个仍然只记录x.尝试使用不同的表单我还没有得到相同的文档字符串来跨越多个变量
我正在使用doxygen来获取Android项目的文档.我知道doxygen多年了.但是现在我遇到的问题是,我希望我的类的详细信息在javadoc中位于顶部而不是底部.
经过短暂的谷歌搜索,我找到了可以DETAILS_AT_TOP做我想要的选项,但不幸的是这个选项被删除了.所以新方法是使用所谓的DoxygenLayout.xml,但文档在哪里应该是这样的文件?在文档中只解释了一些属性.我可以根据需要修改原件在哪里DoxygenLayout.xml?
我也有同样的问题,HTML_FOOTER没有记录原始文件的样子.
我正在研究C++和Objective C iPhone项目.我正在使用git作为我的版本控制系统.
代码库已经增长了很多,所以我想将doxygen添加到项目中.问题是我不确定这样做的最佳方法是什么.
我考虑过几个选项:
1)在项目文件夹中创建doxygen HTML文档,并使其成为项目的"部分",以便它也被版本化并提交给git.
2)在项目文件夹中创建doxygen HTML文档并将其添加到项目中,.gitignore因此项目的每个用户都负责生成文档,项目git存储库将保持不变(除了.gitignore).
我们在主服务器中使用git --bare存储库,因此在服务器中安装包含HTML doxygen的网页会很复杂(你实际上看不到带有git的项目文件--bare repo,所以我赢了除非我单独上传,否则无法看到doxygen生成的HTML文档
也许我可以做些什么cron-job,以保持服务器端的doxygen更新?
非常欢迎帮助.
虽然Doxygen的最新版本声称更好地处理Objective-C类别,但它似乎仍然在我的源代码中阻塞类别.我想知道是否有人正确地记录了类别.
作为一个例子,我在NSString上有一个类别定义为:
@interface NSString (CCFExtensions)
Run Code Online (Sandbox Code Playgroud)
使用名为NSString_CCFExtensions.h的接口文件和实现文件NSString_CCFExtension.m
Doxygen将使用超类引用该文件; 尽管看似有效的doxygen语法,但没有记录任何类别方法.
使Objective-C类别正常工作的正确源标记是什么?