【问题标题】:What exactly are development headers? [duplicate]究竟什么是开发标头? [复制]
【发布时间】:2017-01-12 09:28:45
【问题描述】:

我对“*-devel”包的使用感到困惑,所以我查了一下。根据这篇文章的回答,What are *-devel packages?

"对于使用库 libfoo 运行应用程序,实际上只 需要共享库文件(.so.,例如 libfoo.so.1.0) (可能还有一些数据文件和一些特定于版本的符号链接)。

当你真正想要编译一个使用它的 C 应用程序时 库,您将需要头文件(.h,例如 foo.h) 描述该应用程序的接口以及无版本 共享库的符号链接(.so,例如 libfoo.so -> libfoo.so.1.0)。这些通常捆绑在 *-devel 包中。”

这对我来说似乎是多余的。对我来说,这听起来像这样:“要使用这个库,你只需要 libfoo。但是如果你想使用这个库,你需要头文件,因此需要 libfoo-devel”

头文件的重要性我还没有找到答案。

【问题讨论】:

    标签: c++


    【解决方案1】:

    使用libfoo 构建应用程序后,您显然不需要再安装任何libfoo 的标头。应用程序已经编译。你不需要头文件来运行已经编译的东西。您唯一需要的是libfoo 本身,因为您的应用程序已链接到它。

    这就是你的libfoo:只是图书馆本身。可能是运行时需要的临时配置文件或其他东西。

    另一方面,如果您需要构建和编译使用libfoo 的源代码,则需要头文件和其他支持文件。构建使用libfoo 的源代码所需的一切。

    这些位是进入libfoo-devel 包的位。这就是构建使用libfoo 的源代码所需的东西。

    【讨论】:

    • 如果您通过 rpm 安装“fooapp”,是已经构建了一个应用程序,还是在您解压缩 rpm 时将构建和编译的应用程序?
    猜你喜欢
    • 2020-02-26
    • 2012-03-18
    • 2012-04-30
    • 2014-11-01
    • 1970-01-01
    • 2023-03-17
    • 2019-03-06
    • 2014-10-28
    • 2012-08-27
    相关资源
    最近更新 更多