3

初めてDoxygenを使おうとしています。Doxygen を実行すると、次の形式の警告が多数表示されます。

<コード>.cxx:<行番号>: 警告: ドキュメント化された関数 `<関数>::<関数>' が宣言または定義されていません。

問題にアプローチする方法がわかりません。大規模な C++ パッケージを使用していますが、Doxygen を実行すると、この種の警告が数百回表示されます。

より具体的な情報は次のとおりです。

警告の例:

            Accept.cxx:14: warning: documented function `Accept::Accept' was not declared or defined.

コードの対応する例のセクション:

            #include "Analysis/Accept.h"
            #include "Analysis/Cutflow.h"
            #include "GlaNtp/GlaUtil/Steer/Steer.h"
            #include <iostream>

            Accept::Accept(unsigned int cutmask, unsigned int invertword, StringIntMap* CutTypeMap, Cutflow* analysis_cutflow): m_cutmask(cutmask), m_invertword(invertword), 
                                                                            m_cutword(0),m_cutword_set(false), m_CutTypeMap(CutTypeMap),
                                                                                    m_analysis_cutflow(analysis_cutflow){ 
                                                                                        // this is constructor
            InitBitOrder();

            }

            Accept::~Accept(){}

            void Accept::setCutWord(const unsigned int &cutword){
             m_cutword_set = true;
             m_cutword = cutword;
            }

            bool Accept::didBitPass(){
             //std::cout << "Rick Evnt Pass: " << rickTestCutWord() << std::endl;
             return testCutWord();
            }

            void Accept::InitBitOrder(){

             Steer* bitorsteer=new Steer(); 

             std::string configfile="ConFigFiles/ApplyBits/BitOrderConfigurationFile.txt";

            if(!bitorsteer->ReadFile(configfile)){
             std::cout << "Fatal ERROR: Failed to read Bit Order configuration steering file:  " << configfile << std::endl;
             delete bitorsteer;
             bitorsteer=0;
             exit(1);
            }

            m_bitOrderMap = new StringIntMap("BitOrder", bitorsteer);//  bit order

            delete bitorsteer;
            }

私を正しい方向に向けるためにあなたが持っているかもしれない助けをいただければ幸いです。

先制感謝

4

3 に答える 3

3

私の推測では、Doxygen はAnalysis/Accept.hヘッダー ファイルを解析していないため、Analysisクラス宣言が表示されていません。出力ログで、Analysis/Accept.h実際に処理されていることを確認します。

Doxygen がディレクトリを確実に解析するにはAnalysis、Expert->Input (Doxygen GUI フロントエンド) に追加のソース ディレクトリを追加するか、再帰オプションを有効にする必要がある場合があります。おそらく、現在指定しているソース ディレクトリよりも 1 レベル上のソース ディレクトリを指定する必要があります。

于 2012-07-26T22:11:42.207 に答える
1

私は同じ問題を抱えていたので、Emile Cormier のアドバイスに従いました。私の場合、関連するヘッダー ファイルは実際に解析されていませんでした。これは、拡張子が .h の C++ ヘッダー ファイルがあるためです。私は元々、私の Doxygen.in ファイルに次のものを持っていました:

EXTENSION_MAPPING      = .h=C++

出力を注意深く見ると、「カスタム拡張マッピングの追加: ..h は言語 c++ として扱われます」というステートメントに気付きました。これは余分な「.」を示しています。関連する行からピリオドを削除すると、問題が解決しました。

于 2013-05-14T11:08:11.923 に答える
0

FWIW、私はそのような警告を引き起こした別のケースを持っていました: typedef を 2 つの異なる場所で実行しました。これは C++ に関しては問題ありませんが、doxygen (1.8.7) はまさにこの警告を発行します。単一の定義を持つように並べ替えると、それが修正されました。

于 2014-07-31T12:26:27.170 に答える