c - fatal error : addFunc. h:没有那个文件或目录

标签 c linux makefile include c-preprocessor

我已经创建了一个 Makefile 来在 shell 脚本中运行 C 程序。但是我得到了错误 fatal error: addFunc.h: No such file or directory in mainProg.c 页面和 addFunc.c 页面。我尽力解决了这个问题。但我没有得到解决方案。我在下面提到了我的代码。

主程序.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)

添加函数.c

#include "/home/name/Desktop/add/addFunc.h"
int add(int a,int b){
return (a+b);
}

生成文件

Add: mainProg.c addFunc.c
    gcc -o Add mainProg.c addFunc.c -I.

最佳答案

您确实应该进行剪切和粘贴,因为很明显,您在此处粘贴的文本与您实际使用的文本完全不同(此处存在大量语法错误)。

但是,问题是编译器找不到你的头文件。这可以通过以下两种方式中的一种(或两种)解决:

首先,您应该使用 #include <...>仅适用于系统标题的形式,如 stdio.h等。对于您的个人标题,您应该使用 #include "..." 的形式。反而。区别是特定于实现的,但对于大多数编译器来说,它是包含使用 <...> 的文件。从不在当前目录中查找,而仅在系统目录和 -I 给出的目录中查找,同时使用 "..." 包含文件也在当前目录中查找。

您也可以通过添加 -I. 简单地要求编译器始终在当前目录中查找选项到你的 makefile 中的编译行。

关于c - fatal error : addFunc. h:没有那个文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983356/

相关文章:

c - 获取目录中的文件列表

c - 随机数生成器添加 "-"以获取更大的长度

makefile - GNU 制作 : Multiple targets in a single rule

c - _swab 函数的 Linux 变体

c++ - 在 macOS 上从源代码构建 Qt 时出错

makefile - 使 [1] : *** read jobs pipe: Resource temporarily unavailable. 停止

BZ2_bzBuffToBuffCompress()可以重复调用吗?

c - scanf 之后 fgets 不起作用

linux - 在 Linux 上安装 rlwrap - 没有 root 权限

linux - 在 linux 内核中,对 kfree 的调用会休眠吗?