对于如何构建C ++库,文件方式是否存在某种普遍认可的标准?我认为我的图书馆是静态的。它相当广泛,所以现在,我将类分成不同的文件。每个源文件都有一个头文件。
显然,我不希望最终用户必须#include我的每个头文件。我想过有一个名为" libraryname.h"的头文件。只是#include用户的所有头文件,但我从来没有见过任何其他库那样做,我担心这是有原因的。
我看过图书馆使用单个头文件和多个源文件,这看起来很简单但也有点混乱。我也看到图书馆完全不同意分离源文件和头文件的想法,只有一个带有#define守卫的文件包含所有代码。这似乎是一种非常好的方法,可以大大增加编译时间,这是我想要避免的,但如果有一个非常令人信服的理由以这种方式创建库,我很乐意知道它。任何关于使用什么样式的建议都会受到赞赏!
答案 0 :(得分:2)
单个头文件确实会降低您的构建速度(即,您的一个类声明中的单个更改需要完整的库构建)。
此外,您会发现大多数源文件都不需要所有标头。您也可以使用前向声明,这有助于。
如果您的编译器支持预编译头,那么这就是放置所有标准C ++库的地方。但是,不要将标题放在那里,否则你只会在一次更改时强制重建整个库。