header.h:即使源和头在同一目录中,也没有这样的文件或目录

时间:2015-02-12 10:32:21

标签: c gcc compiler-errors header

我已经制作了标题和来源,但我不知道如何将它们联系起来。我在网上查了一下,但提供的命令没有用(或者我不会在这里:))。

编译它(如果你使用GCC):

部首:

$ gcc -c whatever.h -o whatever.o

来源:

$ gcc -c sample.c -o sample.o

链接文件以创建可执行文件:

$ gcc sample.o whatever.o -o sample

我做错了什么。我正在使用geany进行写入(编译错误在这里),但命令在同一目录中的终端上执行。任何人都可以给我geany的构建命令,所以每当我想要包含一个头,我可以编译并运行吗?

3 个答案:

答案 0 :(得分:5)

好的,正确的方法是

<强> sample.c文件

#include "header.h"

并编译

gcc sample.c -o ob

答案 1 :(得分:2)

拇指规则:

  • 标题文件[.h]适用于#include ing
  • 源文件[.c]用于编译和链接在一起以创建可执行文件。

一旦#include文件中的头文件被.c后,就无需编译头文件并生成目标文件。

仅供参考,您可以通过运行

来检查#include - 头文件的效果
gcc -E sample.c

并希望您了解为何无需分别编译和链接头文件。


编辑:

如果您有sample.cwhatever.h,要生成并运行二进制文件,只需执行

    {li>

    #include "whatever.h"位于sample.c

    的顶部
  • gcc -o sample sample.c

  • ./sample

答案 2 :(得分:1)

如果您通过以下方式包含头文件:

#include <header.h>

它将给出此错误。

相反,您可以编写如下代码:

#include "header.h"