我将详细说明一个常见的假设问题。
问题:
我提供了一个静态库,比如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.handb1.h内部包含的a.hand b.h。
问题:
这个问题有解决方案吗?如果是,请认真寻求解决方案:)
库所有者是否有必要公开他在库中内部使用的所有私有头文件?