【问题标题】:Eclipse/CDT Type '__uint128_t' could not be resolvedEclipse/CDT 类型“__uint128_t”无法解析
【发布时间】:2014-11-10 21:53:06
【问题描述】:

我正在使用 c++,它在代码中输入了 __uint128_t。该代码在 g++ (GCC) 4.8.3 上编译良好,但 Eclipse/CDT 总是在“__uint128_t”上显示错误。实际的错误消息是“无法解析类型'__uint128_t'”

我已经尝试了几件事,包括重新索引,将 -std=c++11 添加到编译器的设置中。有人知道如何使错误消息消失吗?

我正在运行 Eclipse Luna Release (4.4.0) 和 CDT 8.4.0。

【问题讨论】:

    标签: eclipse c++11 eclipse-cdt


    【解决方案1】:

    只有在工具链的某个标头中定义了这种类型时,Eclipse 才能正确“解析”它。如果它是编译器中的内置类型(就像“int”、“char”等)——我猜它是——那么 Eclipse 需要有特殊的代码来处理该类型。因此,除非有人在 Eclipse 中实现了对这个令牌的处理,否则你唯一的选择是对使用这种类型的文件禁用这个特定的代码分析检查......

    【讨论】:

      【解决方案2】:

      取消选中“使用项目之间共享的全局提供程序”并将 -std=c++11 添加到“CDT GCC 内置编译器设置”中指定的编译器的命令行中,可以通过打开项目属性和转到“C/C++ General”、“Preprocessor Include Paths”、“Providers”选项卡。

      然后重建索引:右键单击项目,“索引”,“重建”。

      详情请参考davmac在帖子中的回答:Type 'uint32_t' could not be resolved

      【讨论】:

        【解决方案3】:

        我在使用 Eclipse Oxygen.3(在 Debian 7.10 64 位和 GCC 4.7.2 上使用 CDT 9.4)时遇到了类似的困难。截至 2018 年 3 月 30 日,我尝试了 StackOverflow 上提到的所有内容,但均无济于事。

        我的项目中的多个标头被多个源文件包含。这些标头受 #ifdef 保护,但 Eclipse CDT 的 CODAN 代码分析系统似乎不允许这些受保护的标头应用于多个 .cpp 源文件。如此多的类型和返回这些类型的函数无法识别。

        但是在设置Window > Preferences > C/C++ > Indexer > Index all header variables,然后为项目重建索引后,后续代码分析运行成功。

        如果尝试使用workspace-level settings,请查看我的相关回答。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-19
          • 2015-11-07
          • 2012-02-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多