Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 混合语言代码文档-调试doxygen需要帮助吗_C++_C_Fortran_Doxygen - Fatal编程技术网

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