我目前正在制作一个小型的可重用代码库,这些代码已经被证明是有用的,我想知道这些库通常是如何部署的?我的印象是 .dll 和 .lib 就足够了,但是,我如何引用类和函数?一个库是否也带有很多 .h 文件很常见,还是有更优雅的解决方案?
使用该库的实际应用程序的部署如何?静态链接后,我还需要发送 .dll 文件还是将库的内容复制到程序中?
我目前正在制作一个小型的可重用代码库,这些代码已经被证明是有用的,我想知道这些库通常是如何部署的?我的印象是 .dll 和 .lib 就足够了,但是,我如何引用类和函数?一个库是否也带有很多 .h 文件很常见,还是有更优雅的解决方案?
使用该库的实际应用程序的部署如何?静态链接后,我还需要发送 .dll 文件还是将库的内容复制到程序中?
根据经验,您将所有想要向最终用户公开的公共方法收集在一组称为 API 的标头中。此时,你应该区分内部头和API头,你会发现你的头文件数量(API头)会减少,文件结构的管理会容易很多。
交付库时包含三个基本组件:
库本身的几个版本:.so
在 Unix.dll
和.lib
Windows 下,带有调试版本,优化版本,可能是多线程和单线程,可能是激活分析的版本......并支持静态链接(.a
在 Unix 下,.lib
在 Windows 下,但不是与您需要链接 DLL 的相同),
定义外部接口的标头,以及
文档,解释如何安装和链接库,每个版本需要哪些编译器选项等,以及库本身的文档(每个函数的前置和后置条件等)
少一点,客户就无法使用它。
关于部署,同样,这应该记录在案。如果客户端静态链接库,则不需要任何内容;如果他动态链接它,那么他也需要部署.so
/.dll
文件。