如何在 Eclipse IDE 中删除用户定义路径的错误“未解决的包含”

Posted

技术标签:

【中文标题】如何在 Eclipse IDE 中删除用户定义路径的错误“未解决的包含”【英文标题】:How to remove error "unresolved inclusion" for user defined path in eclipse IDE 【发布时间】:2014-11-06 05:52:50 【问题描述】:

我已将现有的 IAR C++ Project for ARM 导入到 eclipse IDE 中,并为 IAR 工具链添加了插件。该项目已导入,但未包含某些文件。它给出错误:未解决的包含”并且文本带有红色下划线。我已经为这些文件添加了如下所示的路径,但仍然存在相同的错误。请建议删除此错误。

包括“./../../../try_one/try_headers/limits.h”

【问题讨论】:

这是Eclipse的代码分析工具的错误还是编译器的错误? 关于代码分析工具...因为某些部分代码变得无法访问 【参考方案1】:

您需要正确配置 Eclipse 的索引器。如果您的项目类型是“Makefile 项目”(因此不是任何“托管”类型,您可以在 Eclipse 中输入编译选项/标志),您可以按照如下所述进行操作。

转到您项目的属性,然后“C/C++ 常规”>“预处理器包含路径、宏等”。并切换到“提供者”选项卡。取消选中除以下各项之外的所有内容:

CDT GCC 构建输出解析器, CDT Cross GCC 内置编译器设置(取决于您的项目确切类型,这应该是其他类型 - 对于“Cross GCC”项目,您选择“... Cross GCC ...”复选框)。李>

如下图配置:

在你替换的第一种情况下:

(gcc)|([gc]\+\+)|(clang)

与:

.*((gcc)|([gc]\+\+)|(clang))

这样 Eclipse 将知道所有以“... arm-none-eabi-gcc ...”或“... arm-none-eabi-g++ ...”开头的行都是编译器调用,所以它将能够解析标志,包括包含路径(-I 标志)。您可以更改选项文件/文件夹/项目 - 取决于您的配置。

在第二种情况下,您将文本框中的内容替换为类似以下内容:

arm-none-eabi-$COMMAND $FLAGS -E -P -v -dD "$INPUTS" -std=gnu++11 -std=gnu99 -mcpu=cortex-m4 -mthumb

并且您需要指定适当的标志,具体取决于您的项目。您只输入与“内置编译器设置”相关的标志 - 它们是 -std、-mcpu、-mthumb、-mfpu 等。如您所见,您应该输入 C 和 C++ 的标志(如果您使用C++)。

当然,如果您的编译器前缀不是“arm-none-eabi-”,您应该相应地修改选项。

之后,您应该对项目进行完全重建,以便 Eclipse 能够查看项目中所有文件的所有编译命令。如果您的 makefile 隐藏了实际命令(例如,它仅显示“CC:some_file.c”而不是实际执行的完整命令),则必须禁用此功能(您可以更改在“C”下的项目属性中调用 make 的方式/C++ Build”在“构建(增量构建)”文本框的“行为”选项卡中)。

有时还需要手动重建索引,因此右键单击您的项目并转到“索引”>“重建”(有时其他选项也有帮助)。关闭所有编辑器,甚至关闭项目,重新打开后应该就OK了。

完成所有这些步骤后,您应该会在源(或文件夹或整个项目 - 取决于您在解析器中选择的内容)上看到一个小的“扳手”图标 - 在您使用右键单击此类元素后,选择属性和“C /C++ 常规”>“预处理器包括路径、宏等”您应该能够看到 Eclipse 在那里发现了什么:

【讨论】:

以上是关于如何在 Eclipse IDE 中删除用户定义路径的错误“未解决的包含”的主要内容,如果未能解决你的问题,请参考以下文章

如何判断ndk在eclipse上路径是不是安装成功 2014

eclipse无法修改maven默认的本地仓库位置。

如何在Ubuntu中将默认的eclipse IDE更改为新版IDE?

Discord Bot 不会删除消息(带有 JDA API 的 Eclipse IDE Java)

在 pydev eclipse (Debian) 中配置 kivy 路径

如何在 Source Insight 中编译和执行Java 程序