2

那么,我可以在我正在制作的静态库中使用仅标头库、动态库和静态库,而无需将所有这些都变成一个大型静态库吗?

具体来说,我在 OpenGL 中编写了一个渲染引擎,并且我使用了很多工具。即:GLFW、GLM、GLEW,当然还有 OpenGL。

如果用户拥有所有这些,和/或我向他们提供我的图书馆,可以做到吗?

4

1 回答 1

4

问题更多的是链接解决问题。模板库(仅限标头)仅具有为具有显式类型实例化的模板类型生成的代码;这必须在您的库中,否则您将需要一个头库依赖项。外部库和静态库的链接解析以相同的方式解决——通过使用对静态库中项目的外部引用或将 dll 中的代码协调为外部的库。

复杂性以兼容性的形式出现——调试与发布、32 位与 64 位、操作系统架构、编译选项、名称修改等等。

最简单的事情,因此可能是最好的事情,是将编译模块链接到静态库,提供头文件,并记录依赖关系,如果你能提供正确的依赖关系,那就更好了。

如果您使用 VC,Lib 工具将帮助您了解库的内容。学会爱它:)

于 2013-05-07T15:45:52.050 回答