繁体   English   中英

致命错误:addFunc.h:没有这样的文件或目录

[英]fatal error: addFunc.h: No such file or directory

我已经创建了一个Makefile在shell script.in中运行C程序,但是出现fatal error: addFunc.h: No such file or directorymainProg.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM