在过去的几个月里,我编写了一些足够好的通用功能,我想将它们构建为一个库并动态链接,而不是导入 50 多个头文件/源文件。
该项目在 Xcode 和 Dev-C++ 中维护(我知道我可能必须使用命令行来执行我想做的事情)并且必须链接到 OpenGL 和 SDL(在 SDL 的情况下是动态的)。目标平台是 Windows 和 OS X。
我到底在看什么?
- 我的入口点是什么 图书馆是否需要?
- 我的代码需要更改什么? (调用约定?)
- 我如何发布它?我的理解 是标题和编译 库(.dll,.dylib(,.framework), 不管它会是什么)需要 可用于项目 - 特别是作为模板功能 不能被包含在库中 自然。
- 我还需要注意什么?
最佳答案
我建议构建为 statc 库而不是 DLL。如果您这样做,导出 C++ 函数和类的许多问题都会消失,前提是您只打算链接由您构建库时使用的同一编译器生成的代码。
构建静态库非常简单,因为它只是 .o/.obj 文件的集合 - 有点像 ZIP 文件,但没有压缩。无需导出任何内容 - 只需将库包含在您的应用程序链接的文件列表中即可。要访问特定的函数或类,只需包含相关的头文件即可。请注意,您无法摆脱头文件 - C++ 编译模型(尤其是模板)依赖于它们。
关于c++ - 将 C++ 源代码构建为一个库——从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/927063/