【发布时间】:2018-03-28 18:49:55
【问题描述】:
我正在尝试编写一个 makefile,但我并不真正了解目标文件是如何工作的。我的文件夹中没有.o 文件,那么我该如何编译它们呢?每个.h 文件是否都有对应的.o?如果不是,那么我们如何知道是否必须编译目标文件?抱歉,如果这些是愚蠢的问题,我是编程新手。
谢谢。
【问题讨论】:
-
如果您只是声明结构而不是函数,则不需要
.o文件。 -
每个 .c 文件都被编译器编译成 .o。 .h 文件是否存在以及它们的作用取决于程序员。它们只是依赖关系,它们不会创建自己的目标文件。
-
您可以将函数放在与调用者相同的
.c文件中,同时仍然有一个单独的.h文件用于声明,但这样做是不正当的。 -
我明白了。假设我正在尝试通过 makefile 编译程序,并且该程序依赖于 2 个 .c 文件,这两个文件都没有它们所依赖的 .h 文件。当我编译.o文件时,我只需要写下相应的.c文件作为它们所依赖的文件,对吧?
-
@GoodDeeds 啊,这可以解释为什么有时这个人不会回复。非常感谢!
标签: c makefile compilation object-files