我正在尝试使用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.
.
.
.
最佳答案
您的代码段不属于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" };
关于c++ - 使用libclang,如何启用和禁用特定警告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14166881/