如何指定clang格式文件?

时间:2017-09-22 22:08:02

标签: c++ clang llvm llvm-clang clang-format

我刚刚在Redhat 6机器上构建了clang 5.0.0并尝试运行clang-format。我无法获得样式文件中的-style选项。以下是我认为应该有效的一组命令的示例:

./clang-format -style=llvm -dump-config > .llvm-format
./clang-format -style=.llvm-format ~/myFile.cc

当我运行此命令时,出现以下错误:

Invalid value for -style

当放置在父目录中时,它似乎找到并使用.clang格式。内置类型也有效:

./clang-format -style=Mozilla ~/myFile.cc

问题是,我无法明确指定要使用的.clang格式文件。这是我的构建问题还是我滥用clang-format oir误解了文档?

2 个答案:

答案 0 :(得分:25)

我也对此感到困惑。当他们告诉您使用标记-style=file时,他们的字面意思是您输入-style=file,而不是-style=<path/to/actual/filename>

使用此标志,clang-format将在目标文件的目录中查找名为.clang-format的文件。如果它找不到它cd ..,请再试一次。似乎没有办法告诉clang-format使用未完全命名为.clang-format的文件。

您的示例的正确用法是:

./clang-format -style=llvm -dump-config > ~/.clang-format
./clang-format -style=file ~/myFile.cc

答案 1 :(得分:0)

还有一个提示: (以Windows 10为例) -如果您将配置转储到文件中,请稍后检查ascii编码,例如在记事本++中 -.clang格式的文件必须是不带BOM的utf8! (您可以在Notepadd ++中将其转换) -否则,您会收到类似“ YAML:1:4:错误:得到空的普通标量”的错误 -将.clang格式的文件放置在代码文件的同一文件夹或父目录中。c

正确的命令行调用用于格式化code-file.c如下所示: clang-format.exe -style = file -i C:\ path \ code-file.c