【问题标题】:header source file needed after compilation?编译后需要头源文件吗?
【发布时间】:2017-05-24 20:09:43
【问题描述】:

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

cc -o sampleprogram headerfile.c sampleprogram.c

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

【问题讨论】:

    标签: c


    【解决方案1】:

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

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

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

    【讨论】:

    • 当然,执行程序也不需要 C 源文件。图书馆的用户也不需要它们。
    【解决方案2】:

    简答:

    不,不需要。

    更长的答案:

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

    【讨论】:

    • 当然,执行程序也不需要 C 源文件。
    猜你喜欢
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2010-12-27
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多