2017-04-02 12 views
0

私はClang :: Toolingライブラリを使用していくつかのヘッダファイルを解析しています。ヘッダファイルやその他のプリプロセッサの処理を前処理していないため、正しく解析できないようです。解析する前にファイルを前処理する方法をClang :: Toolingに伝えるにはどうすればいいですか?乾杯。これは私のツールを呼び出すための私の現在のコードです。Clang Tooling前処理ソースファイル

/*static*/ SAST SAST::Parse(CFile& HeaderFile, const TArray<CString>& CommandLineArgs) 
{ 
    //Our Custom Formated Ast Data Struct 
    SAST AST; 

    //Parse Command-Line Args. 
    clang::tooling::CommandLineArguments CommandArgs; 
    for (auto& Item : CommandLineArgs) 
     CommandArgs.push_back(Item.GetRaw()); 

    //Traverse And Collect AST 
    auto SourceText = HeaderFile.GetText(); 
    auto SourceFileName = HeaderFile.GetFullName(); 
    clang::tooling::runToolOnCodeWithArgs(new CollectASTAction(&AST), SourceText.GetRawConst(), CommandArgs); 

    return AST; 
} 

答えて

0

明らかに、実際にはファイルを前処理しようとしています。コンソールウィンドウが開いていないために報告されたエラーは表示されませんでした。しかし、llvm :: raw_fd_ostreamクラスのwrite()メソッドをブレークポイントで調べたところ、"FileXXX.hが見つかりませんでした"などのエラーが書き込まれていることがわかりました。したがって、単に#includeというファイルが見つかりませんでした。そのため、前処理が実行/完了されなかったのです。みんな、ありがとう。これは私の一日の長い旅を解決します。