几个月来,我写了一些很好的通用功能,我想构建一个库并动态链接而不是导入50多个头文件/源文件.
该项目使用Xcode和Dev-C++进行维护(我知道我可能必须使用命令行来执行我想要的操作)并且必须链接到OpenGL和SDL(在SDL的情况下动态).目标平台是Windows和OS X.
我在看什么?
如果需要,我的图书馆的入口点是什么?
我需要在代码中更改什么?(调用约定?)
我该如何发布?我的理解是标题和编译库(.dll,.dylib(,.framework),无论它是什么)都需要为项目提供 - 特别是因为模板功能本身不能包含在库中.
还有什么我需要注意的?
小智.. 11
我建议建立一个statc库而不是DLL.如果您这样做,导出C++函数和类的许多问题都会消失,前提是您只打算链接由您构建库的同一编译器生成的代码.
构建静态库非常简单,因为它只是.o/.obj文件的集合 - 有点像ZIP文件但没有压缩.无需导出任何内容 - 只需将库包含在应用程序链接的文件列表中.要访问特定的函数或类,只需包含相关的头文件.请注意,您无法摆脱头文件 - C++编译模型(尤其是模板)取决于它们.
我建议建立一个statc库而不是DLL.如果您这样做,导出C++函数和类的许多问题都会消失,前提是您只打算链接由您构建库的同一编译器生成的代码.
构建静态库非常简单,因为它只是.o/.obj文件的集合 - 有点像ZIP文件但没有压缩.无需导出任何内容 - 只需将库包含在应用程序链接的文件列表中.要访问特定的函数或类,只需包含相关的头文件.请注意,您无法摆脱头文件 - C++编译模型(尤其是模板)取决于它们.