什么是* -devel包?

时间:2010-03-01 20:22:03

标签: c

像“libgtk + -devel”或“python-devel”等开发包的效用是什么?它们是否包含图书馆的来源?它与libgtk +等非开发包有什么不同?

2 个答案:

答案 0 :(得分:48)

*-devel软件包(在基于Debian的发行版中通常称为*-dev)通常是针对给定库编译代码所需的所有文件。

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

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

有时,*-devel包还包含静态编译的库版本(*.a,例如libfoo.a),以防您想构建一个完整的独立应用程序依赖于动态库。

其他语言(例如Java,Python,...)使用不同的方式来记录库的API(有效地包括实际库中的所有必要信息),因此通常不需要单独的*-devel包(除了文档和其他工具之外)。

答案 1 :(得分:7)

它们通常包含必要的标头和库。例如,如果要在自己的应用程序中嵌入Python解释器,python-devel将提供所需的Python头文件和库。还包括一些其他工具和文档(例如开发人员手册或代码示例)。