如果我使用函数的源代码制作headerfile.h
然后headerfile.c
。一旦我编译了主C文件sampleprogram.c
cc -o sampleprogram headerfile.c sampleprogram.c
是否还需要标头的源文件?
headerfile.c
和sampleprogram.c
是否已编译并链接在一起?
如果您要将程序放在USB驱动器上并将其放在另一台计算机上,是否需要将headerfile.h
和sampleprogram
一起包括在内?
答案 0 :(得分:4)
执行程序或使用共享/静态库不需要标头。但是,需要标头来编写使用库接口的代码。通常,在RedHat发行版下,你有rpms来安装库(libuv
)和安装标题的转速(libuv-devel
)。
因此,没有标题,您可以执行程序,也可以链接库。但是,如果要编写使用库API的代码,则需要系统上的标题。
如果您编译程序并将其放在USB驱动器上,您只需要可执行文件。但是,您可能需要重新编译程序,因为编译器针对其运行的系统的特定体系结构。如果将可执行文件移动到另一台计算机,则可能无法正常工作。
答案 1 :(得分:3)
不,不需要。
不需要它,因为当您使用#include
时,头文件的内容基本上会粘贴到C文件中。因此,可执行文件不需要运行头文件和c文件(编译器已经将它们编译成可执行文件)