3

我想使用 clang-tidy 来执行我公司的风格指南。我正在使用 Windows 10。我已经安装了 LLVM v6.0.1。这是我的测试文件:

class foo_bar
{
public:
  foo_bar() = default;

private:
  int bar_;
};

这是我正在运行的命令行:

clang-tidy.exe -checks='-*,readability-identifier-naming' -config="{CheckOptions: [ {key: readability-identifier-naming.ClassCase, value: CamelCase} ]}" test.cpp -- -std=c++11

clang-tidy 没有输出任何错误(我期待类名有问题)。我看不出我的错误在哪里。谁能指导我?

我在 Ubuntu 16.04.4 上用相同的文件尝试了相同的命令行,我得到了想要的结果:

1 warning generated.
C:\Users\Cyril\dev\clang_test\main.cpp:1:7: warning: invalid case style for class 'foo_bar' [readability-identifier-naming]
class foo_bar
      ^
4

2 回答 2

2

Windows 上的 clang-tidy 似乎在组合-checks-config选项方面存在问题。

您实际上可以将所有内容放入-config

clang-tidy.exe -config="{Checks: '-*,readability-identifier-naming', CheckOptions: [ {key: readability-identifier-naming.ClassCase, value: CamelCase} ]}" test.cpp -- -std=c++11

这会产生所需的输出

X:\test.cpp:1:7: warning: invalid case style for class 'foo_bar' [readability-identifier-naming]
class foo_bar
      ^~~~~~~
      FooBar

在 Windows 上的 LLVM 6.0 上测试。

于 2018-08-09T13:46:58.610 回答
1

如果您使用的是 Windows Cmd Shell (cmd.exe),那么问题在于-checks在此行的选项中使用单引号 (')

clang-tidy.exe -checks='-*,readability-identifier-naming' ....

如果您将其更改为(使用 (") 代替)

clang-tidy.exe -checks="-*,readability-identifier-naming" ....

那么它将正常工作。

仅当在 cmd.exe 中运行时在 Windows 上使用 bash 时,这不是问题

于 2019-01-17T07:55:16.013 回答