C++ 混合语言代码文档-调试doxygen需要帮助吗
我很乐意为我们的大项目编写代码文档,它是由C++ 混合语言代码文档-调试doxygen需要帮助吗,c++,c,fortran,doxygen,C++,C,Fortran,Doxygen,我很乐意为我们的大项目编写代码文档,它是由F90、F77、Fortran包含文件、C和C++源代码文件组成的。加上许多预处理器语句(主要在Fortran文件中) 我正在使用Doxygen 1.8.6,并在配置文件中使用Doxygen.in和Doxygen调试语句 Fortran是主要语言 正如你所看到的,有很多错误。如何跟踪、理解它们,然后相应地修改Fortran源文件,有什么线索吗 ********************************************************
F90
、F77
、Fortran包含文件、C
和C++
源代码文件组成的。加上许多预处理器语句(主要在Fortran文件中)
我正在使用Doxygen 1.8.6
,并在配置文件中使用Doxygen.in和Doxygen调试语句
Fortran是主要语言
正如你所看到的,有很多错误。如何跟踪、理解它们,然后相应地修改Fortran源文件,有什么线索吗
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/utils/mx2fit.F90 line: 621, state: 21
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/utils/polfit.F90 line: 168, state: 21
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/utils/twofit.F90 line: 310, state: 21
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/amfi/amfi3.F line: 2824, state: 4
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/cc_external/hsfscc/chp_11a.F90 line: 1993, state: 21
********************************************************************
parse error in end <scopename>********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/dirac/dirbss.F line: 7884, state: 6
********************************************************************
/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/include/dcbgascip.h:37: warning: Found ';' while parsing initializer list! (doxygen could be confused by a mac
ro call without semicolon)
/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/include/dcbham.h:50: warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro
call without semicolon)
parse error in end <scopename>********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/krmc/krmcgascip.F line: 4684, state: 6
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adccore.F line: 7170, state: 19
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adcdble.F line: 2871, state: 10
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adcdiag.F line: 4813, state: 10
********************************************************************
********************************************************************
Error in file /home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adcexci.F line: 1995, state: 10
********************************************************************
make[3]: *** [CMakeFiles/doxygen] Segmentation fault (core dumped)
make[3]: Target `CMakeFiles/doxygen.dir/build' not remade because of errors.
make[2]: *** [CMakeFiles/doxygen.dir/all] Error 2
make[1]: *** [CMakeFiles/doxygen.dir/rule] Error 2
make[1]: Target `doxygen' not remade because of errors.
make: *** [doxygen] Error 2
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/utils/mx2fit.F90行中出错:621,状态:21
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/utils/polfit.F90行中出错:168,状态:21
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/utils/twofit.F90行中出错:310,状态:21
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/amfi/amfi3.F行中出错:2824,状态:4
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/cc_external/hsfscc/chp_11a.F90行错误:1993年,州:21
********************************************************************
最后分析错误********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/dirac/dirbss.F行中出错:7884,状态:6
********************************************************************
/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/include/dcbgascip.h:37:警告:找到“;”解析初始值设定项列表时!(强氧剂可能会被mac混淆
ro调用(不带分号)
/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/include/dcbham.h:50:警告:找到“;”解析初始值设定项列表时!(强氧剂可能会被宏混淆
调用(不带分号)
最后分析错误********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/krmc/krmcgascip.F行中出错:4684,状态:6
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adccore.F行中出错:7170,状态:19
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adcdble.F行中出错:2871,状态:10
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adcdiag.F行中出错:4813,状态:10
********************************************************************
********************************************************************
文件/home/ilias/Dokumenty/Work/QCH/software/dirac_git/working_trunk/src/reladc/adcexci.F行中出错:1995,状态:10
********************************************************************
生成[3]:***[CMakeFiles/doxygen]分段错误(堆芯转储)
make[3]:由于错误,未重新生成目标“CMakeFiles/doxygen.dir/build”。
生成[2]:***[CMakeFiles/doxygen.dir/all]错误2
生成[1]:***[CMakeFiles/doxygen.dir/rule]错误2
make[1]:由于错误,未重新生成目标“doxygen”。
make:**[doxygen]错误2
首先,我假设代码编译正确
还建议升级到doxygen的最新版本(目前为1.8.8),因为许多问题可能会得到解决
追踪的最佳方法是(不幸的是,在状态错误的情况下,报告的行号在大多数情况下是无用的):
-研究doxygen代码
-对于每个文件,分别在其上运行doxygen,并尝试通过减少文件直到错误消失来解决问题,并由此得出错误的结论。
-自己构建doxygen并在调试模式下使用flex运行/addprint语句
对于每个*.F90行,您应该在输出行中看到类似于:
对于每个*.f90文件:
对于每个*.F文件:
对于每个*.f文件:
如果不是这种情况,则文件不能正确识别为自由格式Fortran/固定格式代码,doxygen可能会混淆。
这可以通过在Doxyfile中定义以下内容来实现:
(从doxygen的1.8.7版开始,这是可能的)
如果不可能,请在*.f/.f文件a'C'第一行的第一列中设置c'或“”
在www.diracprogram.org的网站上,我找不到源代码,是否可以共享(部分?)
现在,关于不同的州,它们来自fortranscanner.l(对于解决方案,我不得不猜测):
- 国家:4 SubGBody:可能是由于在固定格式的代码中未正确关闭/识别子例程体(因为它是一个.F文件,所以添加“C”…)
- 国家:6 开始:可能是由于在固定格式的代码中没有正确关闭/识别开始条件(因为它是一个.F文件,所以添加“C”…)
- 国家:10
模B
Preprocessing .../a.F90... Parsing file .../a.F90...
Reading .../a.f90... Parsing file .../a.f90...
Preprocessing .../a.F... Prepassing fixed form of .../a.F Parsing file ...a.F...
Reading .../a.f... Prepassing fixed form of .../a.f Parsing file .../a.f...
EXTENSION_MAPPING = f=FortranFixed f90=FortranFree