我正在尝试使用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的头文件。有没有办法解决这个问题?
我想到的一种方法(不是最优雅和最简单的方法)是将所有代码放入一组头文件/源文件中,但这是很多工作并且可能会非常棘手......
答案 0 :(得分:0)
不是没有重构。
创建库时,我喜欢将标题库安排到公共和私有标头中。您可以让私有标头包含公共标头,但反之亦然。
您需要清理头文件,以便彻底分离API的公共和私有部分。
不幸的是,我不知道你的头文件的结构是如何构建的,我无法提供更具体的建议。
答案 1 :(得分:0)
设计库时,将要显示的界面分开是很重要的 你的图书馆的实施。
只需创建一个包含您要向库用户公开的内容的标题文件,或者只是没有A包含其他头文件。