编译后需要头文件源文件?

时间:2017-05-24 20:09:44

标签: c

如果我使用函数的源代码制作headerfile.h然后headerfile.c。一旦我编译了主C文件sampleprogram.c

cc -o sampleprogram headerfile.c sampleprogram.c

是否还需要标头的源文件? headerfile.csampleprogram.c是否已编译并链接在一起? 如果您要将程序放在USB驱动器上并将其放在另一台计算机上,是否需要将headerfile.hsampleprogram一起包括在内?

2 个答案:

答案 0 :(得分:4)

执行程序或使用共享/静态库不需要标头。但是,需要标头来编写使用库接口的代码。通常,在RedHat发行版下,你有rpms来安装库(libuv)和安装标题的转速(libuv-devel)。

因此,没有标题,您可以执行程序,也可以链接库。但是,如果要编写使用库API的代码,则需要系统上的标题。

如果您编译程序并将其放在USB驱动器上,您只需要可执行文件。但是,您可能需要重新编译程序,因为编译器针对其运行的系统的特定体系结构。如果将可执行文件移动到另一台计算机,则可能无法正常工作。

答案 1 :(得分:3)

简答:

不,不需要。

更长的回答:

不需要它,因为当您使用#include时,头文件的内容基本上会粘贴到C文件中。因此,可执行文件不需要运行头文件和c文件(编译器已经将它们编译成可执行文件)