header.h: 没有这样的文件或目录,即使 source 和 header 在同一目录中
header.h: No such file or directory even though source and header are in same directory
我制作了一个 header 和一个来源,但我不知道如何 link 它们。我在网上查了一下,但提供的命令不起作用(否则我不会在这里 :))。
编译它(如果你使用 GCC):
Header:
$ gcc -c whatever.h -o whatever.o
来源:
$ gcc -c sample.c -o sample.o
给link文件创建一个可执行文件:
$ gcc sample.o whatever.o -o sample
我做错了什么。我正在使用 geany 进行编写(编译错误在这里)但是命令是在同一目录中的终端上执行的。任何人都可以给我 geany 的构建命令所以每当我想包含一个 header 我可以编译和 运行?
好的和正确的方法是
sample.c
#include "header.h"
并编译
gcc sample.c -o ob
经验法则:
- 头文件 [
.h
] 用于 #include
ing
- 源文件 [
.c
] 用于编译和 link 一起创建可执行文件。
在 .c
文件中 #include
d 头文件后,就不需要编译头文件和生成目标文件了。
仅供参考,您可以通过 运行ning
检查 #include
-ing 头文件的效果
gcc -E sample.c
并希望您能理解为什么 不需要 单独编译和 link 头文件。
编辑:
如果您有 sample.c
和 whatever.h
,要生成 运行 二进制文件,只需执行
#include "whatever.h"
在 sample.c
的顶部
gcc -o sample sample.c
./sample
如果您通过以下方式包含头文件:
#include <header.h>
会报这个错
相反你可以这样写:
#include "header.h"
我制作了一个 header 和一个来源,但我不知道如何 link 它们。我在网上查了一下,但提供的命令不起作用(否则我不会在这里 :))。
编译它(如果你使用 GCC):
Header:
$ gcc -c whatever.h -o whatever.o
来源:
$ gcc -c sample.c -o sample.o
给link文件创建一个可执行文件:
$ gcc sample.o whatever.o -o sample
我做错了什么。我正在使用 geany 进行编写(编译错误在这里)但是命令是在同一目录中的终端上执行的。任何人都可以给我 geany 的构建命令所以每当我想包含一个 header 我可以编译和 运行?
好的和正确的方法是
sample.c
#include "header.h"
并编译
gcc sample.c -o ob
经验法则:
- 头文件 [
.h
] 用于#include
ing - 源文件 [
.c
] 用于编译和 link 一起创建可执行文件。
在 .c
文件中 #include
d 头文件后,就不需要编译头文件和生成目标文件了。
仅供参考,您可以通过 运行ning
检查#include
-ing 头文件的效果
gcc -E sample.c
并希望您能理解为什么 不需要 单独编译和 link 头文件。
编辑:
如果您有 sample.c
和 whatever.h
,要生成 运行 二进制文件,只需执行
#include "whatever.h"
在sample.c
的顶部
gcc -o sample sample.c
./sample
如果您通过以下方式包含头文件:
#include <header.h>
会报这个错
相反你可以这样写:
#include "header.h"