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.

[参考译文] CC3235SF:为什么 CCS/Eclipse 无法看到 C++标准头文件?

Guru**** 2576215 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/993711/cc3235sf-why-is-ccs-eclipse-unable-to-see-the-c-standard-header-files

器件型号:CC3235SF

我目前正在制作一个 C++项目、并且我的所有应用程序库都已构建完成并正常工作、没有任何问题。  但是、我发现索引器似乎不知道任何 C++头文件、这些头文件至少以三种不同的方式表现出来:

  • 如果我键入"#include <alg" and try to autocomplete (Ctrl-Space), I get an error bong.  我希望它自动完成"#include" "。  AutoComplete 适用于常规 C 头文件。
  • 如果我有一个类成员、例如"std::string my_string"、并且我键入"(dot)"以访问类成员和方法、我将获得可用类成员及其类型的弹出列表。  但在我的示例中,我会看到"my_string :?" 因为索引器不知道"std:::string"是一个类型。
  • 然后键入"my_string"(注意点),IDE 不执行任何操作,此时应弹出 std::string 类成员和方法的列表。

基本上、不会告诉 IDE C++标准头文件的位置、因此它无法帮助处理任何 C++标准库内容、这是一个很大的麻烦。  我深入了解了项目设置(我的基本项目基于 SDK"local_time"示例)、我由此得出:

您可以在此处看到它在其中拉入头文件的所有可能位置。  其中 一个未包含的位置是 C++头文件目录(.../arm-none-eabi/include/c +/9.2.1)。  因此、我尝试通过将其添加到 include 目录来自行解决此问题、如下所示:

这会导致 C 头文件两个下方的预处理器路径对话框中出现完整路径(C:\TI\ccs_10.2.0\ccs\tools\compiler.gcc-arm-none-eabi-9-2019-Q4-maj\arm-no-eabi\include\c++\9.2.1)。  但是、即使在重建完整索引并重新解析包括项之后、我仍然无法让 IDE 弄清字符串是什么:

所以... 提供什么?  告诉 IDE C++头文件位于何处的正确方法是什么?  C++编辑在 NXP MCUXpresso 中表现出色、因此我知道 Eclipse 完全能够做到这一点。  (目前正在使用 CCS 10.2.0。)  谢谢。

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

    不知道为什么这篇文章发布到 Wi-Fi 论坛、但是...

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

    您好、DR216、

    我们将对此进行研究、并尽快返回给您。

    BR、

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

    你好

    [引用 userid="47307" URL"~/support/wireless-connectivity/wifi/f/wi-fi-forum/993711/cc3235sf-why-is-ccs-eclipse-unable-to-see-the-c-standard-header-files "]如果我键入"#include <alg" and try to autocomplete (Ctrl-Space), I get an error bong.  我希望它自动完成"#include" "。  AutoComplete 适用于常规 C 头文件。[quote userid="47307" URL"~/support/wireless-connectivity/wifi/f/wi-fi-forum/993711/cc3235sf-why-is-ccs-eclipse-unable-to-see-the-c-standard-header-files 从此处可以看到它在头文件中的所有可能位置。  其中 一个未包含的位置是 C++头文件目录(.../arm-none-eabi/include/c +/9.2.1)。  因此、我尝试通过将其添加到 include 目录来自行解决此问题、例如:

    Thant 应该是您所需要的一切。 添加的 include 搜索路径应出现在"includes"节点中、内容应建立索引、这在 CCS 10.2.0中对我有效:

    C++头文件的 include 路径是否在 Project Explorer 视图中正确显示了该文件的包含路径? 如果确实如此、但索引不起作用、您是否可以尝试 清理工作区

    谢谢

    Ki

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

    我确实看到".../include/c +/9.2.1"路径出现在我的 include 中。  现在、我可以自动完成"#include" "。  但是、我仍然无法对 std::字符串类执行自动完成/内容辅助(这使我首先注意到 C++包含问题)。

    这是我的现有项目、我刚刚创建了一个新的源文件。  我有#include 在那里。  如果是 I F3 ,IDE 将打开“字符串”(头文件)。  在这里、我还可以使用 F3来打开"Bits/basic_string.h"。  IDE 似乎至少知道头文件的位置。  但是... 看看我在那里做什么... 我刚刚键入"std::"、并显示了内容辅助窗口、我已展开该窗口。  "字符串"类型是看不到的。  我已经声明了"std::string wikbble;"--如果在下一行我键入"wikbble我没有得到内容帮助,我应该得到 std:string 方法的完整列表。  std:::string 通常在 Eclipse 中作为可识别类型显示为绿色、但此处仅为黑色。

    (FWiw、我确实修改了工作区设置并重新导入了我的三个项目;包含 C++对象的两个项目在 include 目录列表中确实有 C++头文件。)

    您能否尝试重现此特定案例(无法在 std::string 上获取内容帮助)?  有什么想法、我在这里做了什么错?

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

    有趣的是、当我使用 GCC 编译器时、它似乎是特定的。 当我使用 TI 编译器时、它的运行方式似乎符合预期。 我需要进一步调查

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

    确保您能够重现我的问题。  我们等不及再听、谢谢。

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

    这是一个奇怪的问题。 我尝试了在 Eclipse 论坛上找到的各种建议、但没有骰子。 我还使用 CCS 10.2.0附带的7.2.1编译器进行了复制。 很惊讶这会是 CCS 特有的问题。 您提到您正在使用另一个基于 Eclipse 的 IDE、但没有任何问题。 您知道该 IDE 中使用的是什么 Eclipse 和 CDT 版本吗?

    谢谢

    Ki

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

    这是 NXP 针对 MCUX 的发行说明的链接。  以下是我可以找到他们使用的特定 Eclipse + CDT 版本的所有提及:

    • MCUX 11.3.0 (2021年1月)- 已升级:Eclipse 版本至2020.06 (Eclipse 平台4.16.0 / CDT9.11.1)。
    • MCUX 11.2.0 (2020年7月)- 已升级:Eclipse 版本至2019.12 (Eclipse 平台4.14.0/CDT9.10.0 )。
    • MCUX 11.1.0 (2019年12月)- 将底层 Eclipse 框架升级到4.12.0.v201906 / CDT9.8.1
    • MCUX 11.0.0 (2019年6月)- 将底层 Eclipse 框架升级到4.10.0v201812/CDT 9.7.0。
    • MCUX 10.2.0 (2018年5月)- 将 Eclipse 升级为 Oxygen.3A/CDT 9.4.3。

    我使用 MCUX 在 Cortex-M 上进行 C++开发已有5年以上、从未遇到过 Eclipse 不知道 STL 类型的问题。  我以前使用 CCS v9/v10进行过开发、但这是我第一个使用 CCS 的 C++项目。  是否有一些预处理器定义、GCC 希望 IDE 发射、如果没有、IDE 将无法看到 STL 定义?  它不仅仅是 std:::string、它不知道 std::array 是什么、即使代码编译良好。

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

    CCS 10.2.0应基于 Eclipse 4.14和 CDT 9.1.0 (与 MCUX 11.2.0相同)。 是的、CCS 中可能缺少一些配置。 我需要将此问题上报给 IDE 工程师。 我会 随时向您发布任何更新。

    谢谢

    Ki

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

    我为此提交了一个错误。 跟踪链接为 :https://sir.ext.ti.com/jira/browse/EXT_EP-10335

    谢谢

    Ki

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

    谢谢、我将观看该视频、了解最新信息。