我下载了一个 tar.gz 文件,将其解压缩,发现其中有 3 个文件:Makefile
,program.c
我protocol.h
在 gedit 中打开了它们,Makefile
其中只包含一行program : program.c protocol.h
,我program.c
认为其中有一个主程序(很多行)
并且protocol.h
只定义主要变量(只有#define
行和等short
。char
我应该只编译program.c
,还是protocol.h
也编译?还是全部编译?
答案1
你不需要编译头文件(尽管可以这样做),你可以编译源文件可能包含一些头文件,但所需的头文件是否已包含在源文件中,这不是(或不应该)由您决定,而是由开发人员决定:如果program.c
编写正确,它将在其#include
语句中列出所需的头文件,然后在编译进行之前,预处理器将在预处理时用相应头文件中包含的行替换这些头文件:因此要编译它,只需使用make
:
make
或者gcc
:
gcc program.c
但如果你真的想确保protocol.h
已经包含在内,program.c
你可以运行:
grep protocol.h program.c
并且如果命令返回#include "protocol.h"
,protocol.h
则已纳入program.c
。