IAR C 预处理器包含目录

IAR C Preprocessor include directories

我被要求为一些在 IAR Embedded Workbench v3.3

中编写的软件做一个小 mod

我已将原始源文件从一台旧机器复制到任务分配给我的机器上。

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

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

然后我想,好的,我将通过选择它抱怨没有找到并在预处理器选项卡中放置目录的绝对路径的头文件之一来检查我的相对路径是否正确在我使用的这台机器上,它包含了它想要的头文件。但是,还是找不到头文件!

最后,我在c文件中放了一个绝对路径指向想要的头文件。

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

并且编译成功。

确认:

C:\absolute__Path

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

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

在c文件中。

我过去使用过 IAR - 不是那么多 - 但我 已经 使用过它并且我确信那是你设置包含目录的地方。那么,我错了吗,还是有其他东西可以覆盖上述预处理器选项卡中的路径?

编辑:我没有看错,睡了一觉之后,我决定创建一个包含随机目录、子目录和头文件的新项目。果然,如果我在预处理器选项卡中设置和删除 $PROJ_DIR$ 引用路径,新项目会编译,然后不会。所以,一定有什么东西,大概是在 ewp 文件中,它很烦人。

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

右键单击 EW 中的文件和 select 选项。

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

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