我将详细说明一个常见的假设问题。
问题:
我提供了一个静态库,比如libX.a
头文件a.h
和b.h
. 头文件a.h
并b.h
包含库导出的 API。a.h
包括a1.h
和b.h
包括b1.h
。但是a1.h
并b1.h
没有由库的所有者提供,因为a1.h
包含b1.h
库私人使用的数据结构,并且所有者不想公开这些数据结构。
我必须编写一个调用库导出的 API 的应用程序。所以我必须包含a.h
其中b.h
包含 API 的声明。
好的。我编写我的应用程序并包含头文件a.h
并b.h
调用 API。但是我会得到一个编译器错误,因为编译器无法找到a1.h
andb1.h
内部包含的a.h
and b.h
。
问题:
这个问题有解决方案吗?如果是,请认真寻求解决方案:)
库所有者是否有必要公开他在库中内部使用的所有私有头文件?