那么,我可以在我正在制作的静态库中使用仅 header 库、动态库和静态库,而不将所有这些都制作为一个大型静态库吗?
具体来说,我用 OpenGL 编写了一个渲染引擎,并且使用了相当多的工具。 即:GLFW、GLM、GLEW,当然还有 OpenGL。
假设用户拥有所有这些,和/或我向他们提供我的库,可以完成吗?
最佳答案
问题更多的是链接解析的问题。模板库(仅 header )仅具有为具有显式类型实例化的模板类型生成的代码;必须在您的库中,否则您必须需要 header 库依赖项。外部库和静态库的链接解析都以相同的方式解析——通过使用对静态库中的项目的外部引用或将 dll 中的代码协调为外部的库。
复杂性以兼容性的形式出现——调试与发布、32 位与 64 位、操作系统架构、编译选项、名称修改等等。
最简单的事情,因此可能是最好的事情,是将编译模块链接到静态库中,提供 header ,并记录依赖关系,如果您可以提供正确的依赖关系,那就更好了。
如果您使用 VC,Lib 工具将帮助您了解库的内容。学会爱上它:)
关于c++ - 将其他库与静态库一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422791/