IAR C预处理器包含目录

时间:2018-03-26 13:54:35

标签: iar

我被要求为IAR Embedded Workbench v3.3中的一些软件写一个小软件

我已经将原始源文件从旧机器复制到我为该任务提供的源文件。

目前我只想尝试编译软件。我花了一段时间才意识到,或者至少我认为我已经意识到,它无法打开各种头文件的原因是,令人难以置信的是,所有包含路径都是绝对的,而不是相对的。

因此,我将所有路径更改为$ PROJ_DIR $ relative,但随后开始获取无法打开的不同文件。然后意识到他们给我的机器碰巧有一个与原来使用的机器非常相似的目录结构,令人惊讶的是,在这台机器的目录结构中有相当多的相同文件我正在使用最初用于编译代码的机器。

然后我想,好吧,我只是通过选择其中一个头文件来检查我的相对路径是否正确,它正在抱怨未在预处理器选项卡中查找和放置目录的绝对路径在这台机器上,我使用它包含它想要的头文件。但是,仍然无法找到头文件!

最后,我在c文件中放置一个绝对路径指向所需的头文件。

#include "C:\absolute__Path\stdtyp.h"

它编译了。

确认:

C:\absolute__Path

项目中的

|选项| C / C ++编译器|如果我只有:

,预处理器选项卡将不起作用
#include "stdtyp.h"

在c文件中。

我过去曾经使用过IAR - 不是那么多 - 但是我已经使用了它,我确信你在那里设置了包含目录。所以,我错了,或者如上所述,在预处理器选项卡中是否还有其他覆盖该路径的内容?

编辑:我没错,睡过之后,我决定用随机目录,子目录和头文件创建一个新项目。果然,如果我在预处理器选项卡中设置并删除$ PROJ_DIR $引用路径,则新项目将编译,然后不会。所以,必须有一些东西,大概是在ewp文件中,它就是borking。

1 个答案:

答案 0 :(得分:1)

事实证明,您可以逐个文件覆盖单个文件的路径。因此,流氓文件的路径被覆盖并具有绝对路径。

右键单击EW中的文件,然后选择选项。

然后对大多数文件显示一堆灰色框。我没做的就是彻底检查所有文件。我随机检查的少数几个是灰色的,但是有些文件在这里覆盖了不同(和绝对)路径的属性。

至少现在可以在使用相对路径的机器之间轻松复制项目。