0

我正在尝试使用 libclang API 以编程方式分析 C++ 项目。我的clang编译得很好,我的工具正在正确解析生成的AST,但我不知道如何打开/关闭特定的警告。

这是相关的代码片段,我想启用/禁用“未使用的变量”警告:

        clang::DiagnosticOptions mDiagnosticOptions;
        mDiagnosticOptions.ShowOptionNames      = 1; // prints warning, ie [-Wextra-tokens]
        mDiagnosticOptions.Warnings.push_back("unused-variable"); // <----- DOESN'T WORK

        // use mDiagnosticOptions further down for compile steps etc.
        .
        .
        .
4

1 回答 1

1

您的代码片段不是 libclang API ( clang-c/Index.h) 的一部分。如果您使用的是 libclang,那么您可以通过调用

CXTranslationUnit clang_parseTranslationUnit(
        CXIndex CIdx,
        const char *source_filename,
        const char * const *command_line_args,
        int num_command_line_args,
        struct CXUnsavedFile *unsaved_files,
        unsigned num_unsaved_files,
        unsigned options);

您可以通过参数禁用警告command_line_args,例如,

const char* const command_line_args[] = { "-Wall", "-Wno-unused-variable" };
于 2013-10-31T17:05:39.497 回答