我在使用 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 代码(如果我没记错的话);见下图。
一些可能有用的附加信息:
在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/