从多个.h / .cpp文件创建静态库(Visual Studio 2005)?

时间:2010-02-16 08:23:07

标签: visual-studio-2005 static-libraries

我正在尝试使用Visual Studio 2005创建一个静态库,包含多个头文件和源文件,例如:

A-> B,A-> C,A-> D B-&GT,E

(A-> B = B在A中是#include-d)

我设法按照MSDN tutorial编译静态库,并将所有文件放在Visual Studio的项目文件中,并编译.lib。问题是,我只希望其他人可以访问一个头文件(A),而不是其他头文件,但因为A包含其他文件,在我编译了库并尝试在另一个项目中使用它之后,当我只包括来自A的静态库和头文件,它说它找不到B,C,D和E的头文件。有没有办法解决这个问题?

我想到的一种方法(不是最优雅和最简单的方法)是将所有代码放入一组头文件/源文件中,但这是很多工作并且可能会非常棘手......

2 个答案:

答案 0 :(得分:0)

不是没有重构。

创建库时,我喜欢将标题库安排到公共和私有标头中。您可以让私有标头包含公共标头,但反之亦然。

您需要清理头文件,以便彻底分离API的公共和私有部分。

不幸的是,我不知道你的头文件的结构是如何构建的,我无法提供更具体的建议。

答案 1 :(得分:0)

设计库时,将要显示的界面分开是很重要的 你的图书馆的实施。

只需创建一个包含您要向库用户公开的内容的标题文件,或者只是没有A包含其他头文件。