库通常带有头文件吗?

时间:2013-03-21 10:51:08

标签: c++ windows visual-studio dll

我目前正在制作一个可重复使用代码的小型库,这个代码已经被证明是有用的,并且我想知道库通常是如何部署的?我的印象是.dll和.lib就足够了,但是,我如何引用类和函数?图书馆是否常常附带很多.h文件或者有更优雅的解决方案?

如何部署使用该库的实际应用程序?一旦静态链接,我还需要发送.dll文件还是在程序中复制库的内容?

2 个答案:

答案 0 :(得分:6)

根据经验,您可以在一组称为API的标头中收集要向最终用户公开的所有公共方法。此时,您应该区分内部标头和API标头,您将看到您的标头文件编号(API标头)将减少,文件结构的管理将更容易。

答案 1 :(得分:5)

交付图书馆时有三个基本要素:

  • 库本身的几个版本:Unix下的.so,Windows下的.dll.lib,版本用于调试,优化版本,可能是多线程和单线程,可能是带有分析的版本... 支持静态链接(在{1}}下的Unix,.a在Windows下,但不是你需要链接DLL的那个,

  • 定义外部接口的标头,

  • 文档,解释如何安装和链接库,每个版本需要哪些编译器选项等,以及库本身的文档(前后文件) - 每个功能的条件等。)

更少,客户也无法使用它。

关于部署,同样应该记录下来。如果客户端静态链接库,则不需要任何内容​​;如果他动态链接它,那么他还需要部署.lib / .so个文件。