[英]fatal error: addFunc.h: No such file or directory
我已经创建了一个Makefile在shell script.in中运行C程序,但是出现fatal error: addFunc.h: No such file or directory
在mainProg.c
页面和addFunc.c
page中fatal error: addFunc.h: No such file or directory
。我尽力解决了这个问题。但我没有解决方案。我在下面提到了我的代码。
mainProg.c
#include <stdio.h>
#include "/home/name/Desktop/add/addFunc.h"
int main(){
int a,b;
printf("Enter two numbers\n");
scanf("%d%d",&a,&b);
printf("sum:%d\n",add(a,b));
return 0;
}
addFunc.h
int add(int a, int b)
addFunc.c
#include "/home/name/Desktop/add/addFunc.h"
int add(int a,int b){
return (a+b);
}
Makefile文件
Add: mainProg.c addFunc.c
gcc -o Add mainProg.c addFunc.c -I.
您确实应该剪切和粘贴,因为显然,粘贴到此处的文本与实际使用的内容完全不同(此处存在大量语法错误)。
但是,问题是编译器找不到您的头文件。 可以通过以下两种方式之一(或同时使用两种方式)解决此问题:
首先,仅应将#include <...>
格式用于stdio.h
等系统标头。对于个人标头,则应使用#include "..."
格式。 区别是特定于实现的,但是对于大多数编译器而言,在当前目录中从不查找使用<...>
包含文件,而仅在系统目录和-I
给定的目录中查找,而包含文件使用"..."
也在当前目录中查找。
您也可以通过添加-I.
来简单地要求编译器始终在当前目录中查找-I.
makefile中编译行的选项。
您正在遇到的问题似乎是由于使用#include <addFunc.h>
。 使用系统头文件时,将使用<>
。 从您的makefile中看来您不是。
当您使用自己的程序的头文件时, #include
语句略有不同,因为它在.c文件所在的词典中搜索。
使用#include "addFunc.h"
应该可以解决问题。
有关#include
指令的更多信息, 请参见此页
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.