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

标签 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 解释为目录路径并打开实际的头文件“pisa.h”。 h”根据文件“machine.h”中提供的路径target-pisa/pisa.h。相反,git bash 将 target-pisa/pisa.h 解释为 C 代码(如果我没记错的话);见下图。

enter image description here

一些可能有用的附加信息:

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

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

如何解决这个问题?请帮助,我已经被困在这个问题上很长时间了。顺便说一句,我的 friend 也使用 git bash 来做这个实验,这个问题没有发生在他身上。

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

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

最佳答案

machine.h 需要有一个 #include 指令来告诉编译器引入嵌套 header 。

#include "target-pisa/pisa.h"

仅编写 target-pisa/pisa.h 本身并不是有效的 C 代码。

关于c - GCC 无法识别文件内的目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55961025/

相关文章:

c - 嵌套循环并创建模式

c - 初始化 C 结构数组,其大小在编译时未知

bash - 如何正确安装和调用 'r2snow' radare2 反编译器?

linux - shell 条件问题

gcc makefile错误: "No rule to make target ..."

c - LD_PRELOAD 和外部变量

c - Makefile 具有不同的头目录?

arrays - 使用管道运行 bash 数组

c++ - 有什么好的 C++ 项目构建工具可以替代 make 吗?

gcc - 生成文件中的 CC?= 是什么意思?