2016-10-01 194 views
0

因此,当您在C++中包含头文件时,编译器只会复制头文件的内容并将其粘贴到#include所在的位置。我正在制作一个小型游戏引擎/框架,并且我在我的Engine.h中包含了GLLEW,因为我需要像GLFWwindow这样的东西。但是我在使用引擎的测试游戏1项目中遇到了一个编译器错误,因为编译器只是复制代码形式engine.h并粘贴到测试游戏1的main.cpp中,它试图在我的测试中包含glew和glfw游戏1,我不希望它,我没有链接该项目中的glew和glfw库。我如何解决这个问题,所以我仍然可以在engine.h中访问glew和glfw,而不将它们包含在测试游戏1中?如何在头文件中包含依赖项而不将其包含在包含头文件的项目中

+1

如果调用GLFWwindow功能你需要他们在标题中,你需要包括他们。如果您不使用它们,请不要包含它们。没有其他方法可以做到。没有看到任何代码,不可能说任何其他的东西 –

+0

向我们显示代码,以便我们可以帮助你。谢谢 – amanuel2

+1

将'engine.h'重写为[使用pimpl设计模式](http://stackoverflow.com/questions/3597693/how-does-the-pimpl-idiom-reduce-dependencies)。 –

回答

0

你有两种选择。 1.要么你静态链接与GLEW和GLFW库项目,然后调用GLFWwindow功能 2.或者你加载GLEW和GLFW库在C使用的LoadLibrary(),然后++代码中使用GetProcAddess()