我有一个静态链接库Engine,它依赖于另一个库起作用(在本例中为GLFW)。在编译该库并生成我的.lib文件时,我没有任何问题。然后在Engine内部,有 Engine.h 和 Engine.cpp 。它们都是两者依赖,因此包含 glfw3.h (GLFW包含标头)。
然后我还有一个游戏项目,其中包括 Engine.h 和指向 Engine.lib 的链接。尝试构建 Game.cpp 时,被告知找不到 glfw3.h 。这是有道理的,因为我没有在Game中包含 glfw3.h 的路径,并且将 Engine.h 包含在内实际上将 glfw3.h 包含在其中游戏。
我的问题是,我将如何以游戏不会遇到此错误的方式创建我的引擎库?目前,Engine中 glfw3.h 的路径是绝对的。我必须把这个相对吗?如果是这样, Engine.h 会是什么样子?我将 glfw3.h 和 glfw3.lib 放在引擎项目中的什么位置?还是我必须要求 Engine.h 的用户包含 glfw3.h 并链接到 glfw3.lib 自己?
请注意,这不是此处问题的重复(Linking static libraries to other static libraries) 因为这对如何将静态库与其他静态库进行链接提出了疑问。我的问题不是链接过程,而是如何避免在使用我的库的任何项目中出现编译问题。
谢谢