Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在Windows XP上使用Doxygen 1.6.3的输入过滤器出现问题

我正在尝试使用doxygen生成一些我编写的matlab类的文档。我正在使用doxygen-matlab软件包,其中包括一个perl脚本,用于将matlab .m文件融合为c ++样式的注释文件,以便doxygen可以读取它们。

在我的doxyfile中,我已经设置(根据说明)

FILTER_PATTERNS = *m=C:/doxygenMatlab/m2cpp.pl 但是,当代码运行时,而不是在输入文件上运行脚本时,似乎只是使用.pl的默认Windows设置打开脚本。

IE,如果我将.pl与记事本关联,则doxygen试图解析的每个输入文件都会由记事本打开一次脚本。如果我将.pl与perl.exe关联,脚本将运行并抛出no参数错误
参数必须在C:\ doxygenMatlab \ m2cpp.pl第4行中包含文件名-1。

Doxygen文档说

Doxygen will invoke the filter program by executing (via popen()) the command 所以我想知道popen()和Windows是否可以解决一些问题。



回答:

我尝试使用Windows命令提示符(“ cmd”)重现该错误,并注意到以下内容:
  • 如果调用“ perl m2cpp.pl”,则会出现错误-1,因为未指定要转换为cpp文件的m文件。
  • 如果调用“ perl m2cpp.pl mfile”,并且mfile的路径包含空格,则会出现错误1。
  • 将mfile移到不包含空格的位置后,得到了所需的输出。
现在回到Doxygen。我尝试了您的建议,Fabrice,没有任何运气。我阅读了doxygen帮助,发现仅当FILTER_PATTERNS为空时才读取和使用INPUT_FILTER变量。

因此,我现在使用INPUT_FILTER =“ C:\ Programme \ MATLAB \ R2009a \ sys \ perl \ win32 \ bin \ perl U:\ doxygen_matlab \ m2cpp.pl”和一个空的FILTER_PATTERNS变量。使用此配置,您甚至可以将PERL_PATH变量保留为空。此外,包含空格的文件名似乎没有问题。

不幸的是,所有文件都使用上述配置进行了解析,而不仅仅是m文件。但是,将FILTER_PATTERNS设置为* .m = C:\ Programme \ MATLAB \ R2009a \ sys \ perl \ win32 \ bin \ perl U:\ doxygen_matlab \ m2cpp.pl无效,因为doxygen自动添加了过滤后的mfile的名称。并将命令解释为perl“ m2cpp.pl mfile”。当然,文件“ m2cpp.pl mfile”不存在,因为这是两个文件。

也许您可以找到解决此问题的方法。同时,我建议您采用上述解决方法,并将C文件远离包含m文件的文件夹。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 02:07


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.