部件号: CODECOMPOSER
您好、
在我们的一个项目中、我们无法看到 CLANG-tidy 问题。 在 Simplelink SDK 的全新示例工程中使用相同的.clang-tidy 文件、输出按预期显示。 在我们的项目中不会出现任何消息。 我假设某些内部问题会阻止输出或停止处理。 是否有任何方法可以调试此问题? 你有一些 clang-tidy 状态的 loggin 吗?
Matthias、BR
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
部件号: CODECOMPOSER
您好、
在我们的一个项目中、我们无法看到 CLANG-tidy 问题。 在 Simplelink SDK 的全新示例工程中使用相同的.clang-tidy 文件、输出按预期显示。 在我们的项目中不会出现任何消息。 我假设某些内部问题会阻止输出或停止处理。 是否有任何方法可以调试此问题? 你有一些 clang-tidy 状态的 loggin 吗?
Matthias、BR
尊敬的 Ki:
我们已经在使用 CCS 20.4。 我可以从命令行运行 clang-tidy、没有问题、因为它是第三方工具。 但我的问题是 CCS 界面中没有突出显示或列出输出。 我不知道该怎么办,但我知道她在想什么。 clang-tidy 的详细诊断没有任何帮助、因为它已经在运行。 该问题必须出在 CCS 实现中。 据我所知、它不是直接将 clangd 功能用于此输出?
当然、这是:
——
#基于 WebKit 编码准则
检查:>
-*、
CLANG -诊断 — 未使用功能,
cppcogregudoides-use-enum-class、
bugrive-*、
-容易交换的参数,
Google-*,
-google-readability-todo,
MISC-*、
-misc-include-cleaner、
-misc-non-prive-member-variable-in-clases、
性能-*、
-performance-enum-size、
便携性-*、
可移植性 — 避免-pragma — 一次,
可读性-*、
现代化 — 冗余- void - arg、
现代化 — 使用- nullptr、
n现代化 — 原始-字符串文字、
novitice-returne-bracked-init-list、
n现代化-use-bool-字面 量、
noritic-use-default-member-init、
现代化 — 使用-等于 — 默认,
现代化 — 使用-覆盖
#将上述检查中的所有警告转换为错误。
警告错误:“*"</s>“
检查选项:
-{键:可读性标识符命名.MacroDefinitionCase,值: Upper_Case }
-{键:可读性标识符命名.NamespaceCase,值: CamelCase }
-{键:可读性标识符命名.ClassCase,值: CamelCase }
-{键:可读性标识符命名.StructCase、值:CamelCase }
-{键:可读性标识符命名.TemplateParameterCase,值: CamelCase }
-{键:可读性标识符命名.EnumCase,值: CamelCase }
-{键:可读性标识符命名.EnumConstantCase,值: CamelCase }
-{键:可读性标识符命名.FunctionCase、值:Camelback }
-{键:可读性标识符命名.ParameterCase,值: Camelback }
-{键:可读性标识符命名.VariableCase、值:Camelback }
-{键:可读性标识符命名.MemberCase,值: Camelback }
-{键:可读性标识符命名.GlobalConstantCase,值: Camelback }
-{键:可读性标识符命名.GlobalVariablePrefix、值:g_}
-{键:可读性标识符命名.ClassMemberPrefix、值:M_}
-{键:可读性标识符命名.PrivateMemberPrefix、值:M_}
-{键:可读性标识符命名.ProtectedMemberPrefix、值:M_}
#ExcludeHeaderFilterRegex:'scif'
HeaderFilterRegex:^(?!.*scif)(?!.*(?:^|/|\)ti(?:/|\)|.*ti_drivers_config\.h)。*
#使用我们自己的 CLANG 格式文件
#格式样式:'文件'
尊敬的 Ki:
同时、我偶然发现了一个可能的原因:我们使用的是 TIarmclang 3.2.3、因为它与 Simplelink 8.30 版本 4.x 存在一些不兼容性 将项目的编译器更改为 4.0.4、我可以再次看到 clang-tidy 报告、但现在正在努力解决 errno.h include 问题。
是否有任何关于 Simplelink -> CLANG 4.0 兼容性的更新、或任何使 CLANG-tidy 与 3.2.3 配合使用的方法?
现在出现的另一个问题:
“DeviceFamily_XYZ 未定义。 您必须定义 DeviceFamily_XYZ!“ [CLANG-DIAGNOSTIC_ERROR]
这在 编译中包含的 Debug\syscfg\ti_utils_build_compiler.opt 中定义。 工程编译成功、但 clang-tidy 似乎忽略了所有基于文件的编译器命令。 我们可以更改任何配置来使其正常工作吗?
我们正在使用 TIarmclang 3.2.3、因为它与版本 4.x 的 Simplelink 8.30 存在一些不兼容性 将工程的编译器更改为 4.0.4
哦,这是一个非常有趣的数据点,谢谢!
是否有任何关于 Simplelink 的更新-> CLANG 4.0 兼容性
我没有关于这个问题的任何答案。 我建议让 SDK 专家开始一个新主题。
或者任何使 CLANG-tidy 与 3.2.3 一起工作的方法?
对此进行了深入研究
您好、Ki、我们现在能够迁移到 TIARmCLANG 4.0.4、因此工作流程主要按预期工作。
剩下的问题是:
似乎 clang-tidy 不知道任何基于文件的编译器命令、尽管它在 compile_commands.json 中已正确扩展。
你发言的第一部分并不令我感到惊讶。 但第二部分确实如此。 如果定义被正确扩展、我会生成图像、然后它会被 clang-tidy 正确拾取。
我使用 SDK 中的一个基本示例尝试了该方法、发现了同样的问题。 我曾尝试在.clang-tidy 文件中进行定义、但似乎没有开始接收。 只有在添加到工程属性或定义源文件/头文件时、似乎才会拾取该信息。