我目前正在运行Ubuntu(最新的固件)并且有一堆我为c编程制作的目录。但是,我在编译时遇到错误,告诉我它找不到“file.h”头文件 在我的主文件夹“temp”中 目录如下
temp
然后:
src bin include assets Makefile
src包含一个.c文件:
#include "file.h"
int main(void)
{
initscr();
noecho();
cbreak();
char ch;
FILE * ptr;
ptr = fopen("input.txt","r");
if (ptr == NULL)
{
mvprintw(0,0,"Error reading from file");
exit(1);
}
while( ( ch = fgetc(ptr) ) != EOF )
mvprintw(0,0,"%c",ch);
refresh();
fclose(ptr);
return 0;
}
和我的include文件夹包含Header文件(它给我错误) 这就是file.h包含的内容......
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ncurses.h>
我还有一个makefile,如下所示:
all:
gcc -Wall -pedantic -std=c99 src/file.c assets/input.txt -o bin/runMe
最后资产包括一个.txt文件“input.txt”,该程序只是从文本文件中读取一些字符,这些字符位于assets目录中。我尝试过使用“#include&lt;&gt;”符号,但似乎没有帮助。我也尝试使用“#include”include / file.h“这样的东西”,但也没有用。
答案 0 :(得分:3)
如果file.h
位于temp
目录中,请在Makefile
中添加到您的命令中:
-Itemp
在a.c
:
#include <file.h>
当#include "file.h"
位于包含它的文件的同一目录中时,您应该使用file.h
。