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.

[参考译文] CCSTUDIO:如何在 CCS 版本:20.0.1.4__1.6.1中集成 clang-tidy? 已安装 LLVM-18.1.8-win64.exe

Guru**** 2473260 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1458400/ccstudio-how-to-integrate-clang-tidy-in-ccs-version-20-0-1-4__1-6-1-i-alread-installed-llvm-18-1-8-win64-exe

器件型号:CCSTUDIO
主题中讨论的其他器件:DP83869

工具与软件:

如何在 CCS 版本20.0.1.4__1.6.1中集成 CLANG-TIDY? 我的意思是 在构建时运行 clang-tidy。 已安装 LLVM-18.1.8-win64.exe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    CCS 附带的 TI clang 编译器具有 clang-tidy 支持。 因此无需安装任何额外的内容。

    但是、存在一个错误、即检查不会像预期的那样在工程编译上运行。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-12152

    谢谢

    Ki  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ki:

    是否可以使用 CCS 生成的 compile_commands.json 手动运行 clang-tidy? 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为是这样。 我将请编译器专家对此发表意见。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我当时正在与工程部门讨论、并获得了一些有关工作方式的更多详细信息:

    compile_commands.json 由 CCS 工程服务器生成、仅供 clangd 解析器在源代码导航期间使用。 它根本不用于 CCS Clang-tidy 集成。 TI clang 编译器的 clang tidy 实现似乎没有接受此 compile_command.json 文件的选项。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Ki,我 在我的电脑上安装了 LLVM-18.1.8-win64.exe ,其中包含 clang-tidy.exe。 我还 从 主 llvm-mirror/Clang-tools-extra/Clang-tidy/tool/run-clang-tidy.py 下载了 run-clang-tidy.py·。 我尝试运行 run-clang-tidy.py 来检查代码、请参阅以下输出、我怀疑 compile_commands.json 生成的源文件路径名有问题、 可能是"/"或"\"。

    C:\Users\cnxiahon\workspace_ccstheia\ethercat_slave_cia402_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang\Release\.clangd>py run-clang-tidy.py
    启用的检查:
    Clang-analyzer-apiModeling。 错误
    Clang-analyzer-apiModeling。 TrustNonnull
    Clang-analyzer-apiModeling。 TrustReturnsNonnull
    clang-analyzer-apiModeling.google.gtest
    clang-analyzer-apiModeling.llvm.CastValue
    clang-analyzer-apiModeling.llvm.ReturnValue
    Clang-analyzer-core。 BitwiseShift
    Clang-analyzer-core。 呼叫与消息
    Clang-analyzer-core。 CallAndMessageModeling
    Clang-analyzer-core。 DivideZero
    Clang-analyzer-core。 DynamicTypePropagation
    Clang-analyzer-core。 非 NullParamChecker
    Clang-analyzer-core。 NonnilStringConstants
    Clang-analyzer-core。 NullDeereference
    Clang-analyzer-core。 StackAddrEscapeBase
    Clang-analyzer-core。 StackAddressEscape
    Clang-analyzer-core。 未定义的 BinaryOperatorResult
    Clang-analyzer-core。 VLASize
    clang-analyzer-core.builtin.BuiltinFunctions
    clang-analyzer-core.builtin.NoReturnFunctions
    clang-analyzer-core.uninitialization.ArraySubscript
    clang-analyzer-core.uninitialization.Assign
    clang-analyzer-core.uninitialization.Branch
    clang-analyzer-core.uninitialization.CaptureBlockVariable
    clang-analyzer-core.uninitialization.NewArraySize
    clang-analyzer-core.uninitialization.UndefReturn
    clang-analyzer-cplusplus。 InnerPointer
    clang-analyzer-cplusplus。 工作
    clang-analyzer-cplusplus。 新建删除
    clang-analyzer-cplusplus。 NewDeleteLeaks
    clang-analyzer-cplusplus。 新的
    clang-analyzer-cplusplus。 PureVirtualCall
    clang-analyzer-cplusplus。 SelfAssignment
    clang-analyzer-cplusplus。 SmartPtrModeling
    clang-analyzer-cplusplus。 StringChecker
    clang-analyzer-cplusplus。 VirtualCallModeling
    clang-analyzer-deadcode。 DeadStores
    clang-analyzer-fuchsia。 HandleChecker
    瞬态抗扰度。 NullPassedToNonnull
    瞬态抗扰度。 NullReturnedFromNonnull
    瞬态抗扰度。 NullabilityBase
    瞬态抗扰度。 NullableDereferenced
    瞬态抗扰度。 NullablePassedToNonnull
    瞬态抗扰度。 NullableReturnedFromNonnull
    clang-analyzer-optin.core.EnumCastOutOfRange
    clang-analyzer-optin.cplusplus.UninitializeObject
    clang-analyzer-optin.cplus.VirtualCall
    clang-analyzer-optin.mpi.mpi-Checker
    clang-analyzer-optin.OSX.OSObjectCStyleCcast
    clang-analyzer-optin.osx.cocoi.localizability.EmptyLocalizationContextChecker
    clang-analyzer-optin.osx.coco.localizability.NonLocalizedStringChecker
    clang-analyzer-optin.performance.GCDAntipattern
    clang-analyzer-optin.performance.Padding
    clang-analyzer-optin.portionality.UnixAPI
    Clang-analyzer-OSX。 结构
    Clang-analyzer-OSX。 MIG
    Clang-analyzer-OSX。 NSTORCFErrorDerefChecker
    Clang-analyzer-OSX。 NumberObjectConversion
    Clang-analyzer-OSX。 OSObjectRetainCount
    Clang-analyzer-OSX。 ObjCProperty
    Clang-analyzer-OSX。 SecKeychainAPI
    clang-analyzer-osx.cocoe.AtSync
    clang-analyzer-OSX.coco.AutoreleaseWrite
    clang-analyzer-OSX.coco.ClassRelease
    clang-analyzer-osx.cocoe.Dealloc
    clang-analyzer-OSX.COCOA.IncompatibleMethodTypes
    clang-analyzer-osx.cocoe.Loops
    clang-analyzer-OSX.coco.MissingSuperCall
    clang-analyzer-OSx.cocoe.NSAutoreleaseCool
    clang-analyzer-osx.coco.nsError
    clang-analyzer-OSX.coco.NilArg
    clang-analyzer-osx.coco.NonNilReturnValue
    clang-analyzer-osx.cocoe.ObjCGenerics.
    clang-analyzer-osx.cocoe.RetainCount
    clang-analyzer-osx.cocoe.RetainCountBase
    clang-analyzer-OSX.coco.RunLoopAutoreleaseLeak
    clang-analyzer-OSX.coco.SelfInit
    clang-analyzer-osx.cocoe.SuperDealloc
    clang-analyzer-osx.cocoe.UnusedIvars
    clang-analyzer-OSX.COCOA.VariadicMethodTypes
    clang-analyzer-OSx.coreFoundation.CFError
    clang-analyzer-OSx.coreFoundation.CFNumber
    clang-analyzer-OSx.coreFoundation.CFRetainRelease
    clang-analyzer-OSx.coreFoundation.containers.OutOfBounds
    clang-analyzer-OSx.coreFoundation.containers.PointerSizedValues
    CLANG 分析仪安全性。 FloatLoopCounter
    clang-analyzer-security.cert.env.InvalidPtr
    clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling
    clang-analyzer-security.insecureAPI.SecuritySyntaxChecker
    clang-analyzer-security.insecureAPI.UncheckedReturn
    clang-analyzer-security.insecureAPI.bcmp
    clang-analyzer-security.insecureAPI.bcopy
    clang-analyzer-security.insecureAPI.bzero
    clang-analyzer-security.insecureAPI.decodeValueOfObjCType
    clang-analyzer-security.insecureAPI.getpw
    clang-analyzer-security.insecureAPI.gets
    clang-analyzer-security.insecureAPI.mkstemp
    clang-analyzer-security.insecureAPI.mktemp
    clang-analyzer-security.insecureAPI.rand
    clang-analyzer-security.insecureAPI.strcpy
    clang-analyzer-security.insecureAPI.vfork
    Clang-analyzer-unix。 结构
    Clang-analyzer-unix。 DynamicMemoryModeling
    Clang-analyzer-unix。 错误
    Clang-analyzer-unix。 malloc
    Clang-analyzer-unix。 AllocSizeof
    Clang-analyzer-unix。 不匹配取消分配器
    Clang-analyzer-unix。 StdCLibraryFunctions
    Clang-analyzer-unix。 Vfork
    clang-analyzer-unix.Cstring.BadSizeArg
    clang-analyzer-unix.Cstring.cStringModeling
    clang-analyzer-unix.Cstring.NullArg
    Clang-analyzer-valist。 CopyToSelf
    Clang-analyzer-valist。 未初始化
    Clang-analyzer-valist。 未终止
    Clang-analyzer-valist。 ValistBase
    clang-analyzer-webkit。 NoUncountedMemberChecker
    clang-analyzer-webkit。 RefCntblBaseVirtualDtor
    clang-analyzer-webkit。 UncountedLambdaCapturesChecker

    clang-tidy -p=C:\users\cnxiahon\workspace_ccstheia\ethercat_slave_cia402_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang\Release\.clangd C:/ti/ind_comms_sdk_am243x_09_02_00_15/examples/industrial_comms/ethercat_slave_demo/device_profiles/402_cia/ecSlvCiA402.c
    错误:无输入文件[clang-diagnostic-error]
    错误:无法处理编译,在""中只期望一个编译器作业[clang-diagnostic-error]
    处理 C:\ti\ind_comms_sdk_am243x_09_02_00_15\examples\industrial_comms\ethercat_slave_demo\device_profiles\402_cia\ecSlvCiA402.c.时出错
    找到编译器错误。
    clang-tidy -p=C:\users\cnxiahon\workspace_ccstheia\ethercat_slave_cia402_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang\Release\.clangd C:/ti/ind_comms_sdk_am243x_09_02_00_15/examples/industrial_comms/ethercat_slave_demo/common/os/freertos/ESL_soeDemo.c
    错误:无输入文件[clang-diagnostic-error]
    错误:无法处理编译,在""中只期望一个编译器作业[clang-diagnostic-error]
    处理 C:\ti\ind_comms_sdk_am243x_09_02_00_15\examples\industrial_comms\ethercat_slave_demo\common\os\freertos\esl_soeDemo.c.时出错
    找到编译器错误。
    clang-tidy -p = C:\users\cnxiahon\workspace_ccstheia\ethercat_slave_cia402_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang\Release\.clangd C:/ti/ind_comms_sdk_am243x_09_02_00_15/examples/industrial_comms/custom_phy src

    ...

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Ki,我 在我的 PC 上安装了 LLVM-18.1.8-win64.exe、其中包含 clang-tidy.exe。 我还 从 主 llvm-mirror/Clang-tools-extra/Clang-tidy/tool/run-clang-tidy.py 下载了 run-clang-tidy.py·。 我尝试运行 run-clang-tidy.py 来检查代码、请参阅以下输出、我怀疑 compile_commands.json 生成的源文件路径名存在错误、 可能是"/"或"\"。[/QUOT]

    不幸的是、我们将无法为此提供大量援助。 我们在 clangd 解析器使用的上下文中生成 compile_commands.json。 我们不能就它与其他第三方 clang 实用程序一起使用的任何问题进行评论。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ki:

    有没有任何计划来修复 错误、因为错误中的检查不会像应该的那样在项目构建上运行?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有任何计划解决 在项目构建上未按预期运行检查的错误?

    是、目前计划在今年中旬发布 CCS 20.2.0版本。

    https://sir.ext.ti.com/jira/browse/EXT_EP-12152