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

时间:2014-09-12 06:01:16

标签: c++ eclipse arm iar

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

包括" ./../../../ try_one / try_headers / limits.h"

1 个答案:

答案 0 :(得分:0)

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

转到项目的属性,然后“C / C ++ General”> “预处理器包括路径,宏等”并切换到“提供商”标签。取消选中除以下内容之外的所有内容:

  • CDT GCC Build Output Parser,
  • CDT Cross GCC内置编译器设置(根据您的项目确切类型,这应该是其他类型 - 对于“Cross GCC”项目,您选择“... Cross GCC ...”复选框)。

配置它们,如下图所示:

enter image description here enter image description here

在第一种情况下,您将替换:

(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 ++构建“构建(增量构建)”文本框中的“行为”选项卡。

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

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

enter image description here