【发布时间】:2015-01-04 19:31:00
【问题描述】:
我有几个关于在 C 中制作文件、标头和包含文件的一般性问题,我希望得到一个易于解释的答案,因为所有教程都从“好的,我明白这一点”到“这到底是什么”这个”只有几行。 假设我有一个要为其创建 makefile 的程序。
**fileA.c** contains the main and calls functions in **fileB.c** and **fileC.c**
**fileB.c** contains getopts and stdlib but no other file or function from other file
(如此正常的标头,对吗?没有任何链接到任何其他文件,因为它不调用任何东西。或者它应该有 fileA.c 标头,因为它是从那里调用的?)
**fileC.c** contains functions that call header1.h (given header file for library)
我只是对包含哪些标头以及我在 make 文件中放置什么以支持 make/clean 函数感到困惑。由于 fileA.c 从 fileB.c 和 fileC.c 调用函数,我是否为它们创建标题并将它们#include 到 fileA.c 或我要把它写到makefile中吗? 如果我在文件中包含某些内容的标头,然后为该文件创建一个 makefile,它会进入预处理器两次吗?
我想我可能只是对 makefile 和头文件的实际用途感到困惑,这让我失去了理智。
感谢您抽出宝贵时间阅读,我们将不胜感激。
编辑:
供参考,
fileA.o: fileA.c fileA.h
${CC} ${CFLAGS} -c fileA.c
所以,既然 fileA 没有被任何东西调用,这将是正确的(我确实将地址从 fileA 传递到 fileB 和 fileC)?
fileB.o: 会包含 fileB.c fileB.h 吗?还是会有其他标题?
【问题讨论】: