c++ - 将其他库与静态库一起使用?

标签 c++ dll static-libraries

那么,我可以在我正在制作的静态库中使用仅 header 库、动态库和静态库,而不将所有这些都制作为一个大型静态库吗?

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

假设用户拥有所有这些,和/或我向他们提供我的库,可以完成吗?

最佳答案

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

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

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

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

关于c++ - 将其他库与静态库一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422791/

相关文章:

c++ - std::move 应该放弃常量吗?

c++ - 如何管理生成静态库和 dll 的构建库项目?

ios - 如何在 Xcode 4.3.1 中使用工作区链接到 coco2d 静态库 (1.1 beta 2)

c++ - 为存档而构建的静态库,它不是被链接的体系结构 (x86_64)

c++ - 如何在 C++ 中将 `.a` 文件导入 CMake?

c++ - 使用 floorf() 函数时无法链接 Embarcadero XE4 项目

c++ - 静态初始化器的上下文是什么,我如何声明它的友元?

c# - ToString ("f2"中的 .NET 舍入错误)

python - DLL 加载失败,而 `import dolphindb`

C++ Dll 链接 Curl