GCC无法识别文件内部的目录路径

时间:2019-05-02 22:26:14

标签: c bash makefile

在使用GCC时遇到的问题是,我无法使用命令make来构建程序,因为某些文件包含其实际位置的路径。

说我有一个名为“ machine.h”的文件,其内容为target-pisa/pisa.h。同时,在同一工作目录中,我有一个名为“ target-pisa”的文件夹,其中有一个名为“ pisa.h”的文件;头文件“ machine.h”的实际代码实际上位于文件“ pisa.h”内部,该文件位于与“ machine.h”相同的工作目录中的名为“ target-pisa”的文件夹中。

假设由于某些原因,我不能简单地将代码从“ pisa.h”复制并粘贴到“ machine.h”;也就是说,我必须坚持教授提供的内容。 make命令在这种情况下无法在我的笔记本电脑上使用,因为它无法将target-pisa/pisa.h解释为目录路径,无法根据提供的路径target-pisa/pisa.h打开实际的头文件“ pisa.h”在文件“ machine.h”中。相反,git bash将target-pisa/pisa.h解释为C代码(如果我没记错的话);参见下图。

enter image description here

一些其他有用的信息:

machine.h中,只有一行代码,如下所示: target-pisa/pisa.h

我检查了工作目录中几乎所有.c文件都具有#include "machine.h"

如何解决此问题?请帮助,我已经被困了很长时间了。顺便说一句,我的朋友还使用git bash进行了此实验,但他没有发生此问题。

我尝试重新安装git bash以便查看问题是否可以解决,但是没有解决。

总而言之,我想通过在git bash中使用make命令来成功构建程序。

1 个答案:

答案 0 :(得分:1)

machine.h需要具有#include指令,以告知编译器提取嵌套标头。

#include "target-pisa/pisa.h"

仅靠自己写target-pisa/pisa.h并不是有效的C代码。