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:THEIA/CCS20 `clangd`不会在出现问题的头文件上重新运行

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1447397/codecomposer-theia-ccs20-clangd-does-not-rerun-on-header-files-with-a-fixed-problem

器件型号:CODECOMPOSER

工具与软件:

CCS THEIA v1.5.1和 CCS v20.0.0上都存在此错误。

当`clangd`在头文件中检测到问题时、此问题会以内联方式突出显示并列在输出旁边的"Problems"部分中。 当上述问题得到解决后、即使重新编译工程、突出显示/问题说明也会保留在头文件中。 这包括内联突出显示、"Problems"部分说明、甚至包括文件资源管理器红色突出显示/问题数量注释。

在重新启动 CCS 应用程序、关闭/打开同一工作区、删除构建输出文件夹和重新编译之间、这个问题仍然存在。

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

    您好!

    我无法完全重现此问题。 我看到问题视图中的 clang-tidy 问题立即得到解决。 对于 clangd 解析器发出的一些警告、它可能会一直存在、但在重新编译工程时、警告会从"Problems"视图和其他位置消失。

    您能提供一个小的测试用例吗? 这是一个非常简单的示例项目、我可以导入该项目并对其进行实验。

    谢谢

    Ki

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

    我创建了下面链接的最小复制项目。

    github.com/.../TI_compile_fail_example

    重现步骤:

    1.将存储库克隆到所需目录

    2.在 CCSv20/CCS Theia 中打开存储库文件夹

    3.打开 CPU1/include/CPU1/vehicle.h

    4.删除`#include `μ A

    5.在`vehicle.h`头文件中编译并确认编译失败/`clangd`错误

    6. Re 添加`#包含 `μ A

    7.编译并确认编译成功、但在`vehicle.h `头文件中保留` clangd` error

    结果示例(请注意编译成功、但仍保留`clang` error 如下所示):

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

    感谢测试用例。 我认为这个问题是专门针对已添加到项目中的头文件。 我需要清理项目以删除消息。

    我为此提出了一个 TT。 跟踪链接: https://sir.ext.ti.com/jira/browse/EXT_EP-12041

    谢谢

    Ki

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

    对于我们来说、同一问题的某些变体也会出现在多台机器上。 似乎是高速缓存未正确清理的问题。

    例如、以下 MSP430项目可以很好地构建、生成一个输出、而且我能够对其进行调试。 然而、它在此处显示了一个与高亮变量完全无关的误差。 我相信这个文件在几次迭代之前就有这些行中的相关变量、但"错误"仍然显示。 这在清除、重新编译工程、删除输出调试目录等后保持不变

    在 Windows 10计算机上是 CCS Theia 20.0.0.12__1.6.0。

    我们还将处理 Ubuntu 20.04计算机上的另一个实例、该实例具有阻止构建项目的相同版本。 在两台不同的机器上设置相同-它将在一台机器上构建、但不会在另一台机器上构建。 未编译的代码在过去可能存在特定错误、但代码已更改、仍然无法编译。

    我认为这种版本的 Theia 有问题。 是否有办法擦除包含这些旧错误的高速缓存?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这在清除、重建项目、删除输出调试目录等之后仍然存在。

    清除项目总是能帮我解决问题。 删除编译配置子文件夹也会删除工程的 clangd cache 文件夹。

    未构建的用户在过去可能遇到了特定错误、但代码已更改、但仍未生成。

    这是一个不相关的误差。 过时的误报解析器错误不会影响构建。

    如果您可以为两者提供小的可重现测试用例、这将会很有帮助。 对于编译问题、请提供复制到文本文件的完整编译输出、并在此处发布该日志。

    谢谢

    Ki

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

    无论是清除工程还是删除 Debug build 文件夹都无法解决问题。 下面是另一个示例、我将 typedef 从驱动程序文件移至应用程序的更高层、此处的错误显示该类型未定义、即使相关行实际定义了相应的类型:

    在 Theia 的最新版本中、索引器有一些"粘性"、它没有绑定到构建缓存。 删除输出构建文件夹并清理工程并不能解决问题。

    这个特定的项目不会很容易与您分享,但我认为您可以通过做类似的事情来复制它:

    • 创建一个具有多个模块的工程
    • 会特意在其中一个模块中产生误差
    • 将违规声明/函数等移动到另一个模块
    • 修复错误
    • 重新生成
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    最新版本 Theia

    是指 CCS 20吗? 或 CCS Theia 1.5.1?

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

    这是 CCS 20.0.0、我假设它是 Theia、因为它基于 VSCode 且默认工作区为 workspace_ccstheia

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是 CCS 20.0.0、我假设它是 Theia、因为它基于 VSCode、默认工作区是 workspace_ccstheia

    是的、CCS 20基于 Theia IDE。 有时会产生一些混淆、因为我们以前有单独的"CCS Theia"产品、我们在 CCS 20发布后停止使用。

    我将使用您提供的其他步骤再次尝试在此版本上重现问题。

x 出现错误。请重试或与管理员联系。