我正在努力找出在Visual Studio(即2015)中设置依赖项的正确方法,以下是情况:
我有两个项目:
引擎:它是一个静态库项目,依赖于我在“图书馆员”,“其他依赖项”部分中指定的glfw、glew和opengl .lib文件。我也正确地添加了包含和库目录。
游戏:它应该只能访问引擎项目提供的API,所以我将引擎头文件目录添加到游戏包含目录中,并将生成的Engine.lib与其他库目录一起添加到游戏项目中。
此时,引擎项目成功编译。
我希望游戏项目也能正常工作,但是当我尝试用简单的main.cpp编译此项目时,编译器显示此错误(引用来自引擎项目的文件):
-- 错误C1083 无法打开包括文件:'GL/glew.h':没有那个文件或目录
我不想在我的游戏项目中包含opengl、glew和glfw库和包含目录,因为用户不应该访问此API。
那么...如何达到这个目的(越简单越好)?
先行致谢
我有两个项目:
引擎:它是一个静态库项目,依赖于我在“图书馆员”,“其他依赖项”部分中指定的glfw、glew和opengl .lib文件。我也正确地添加了包含和库目录。
游戏:它应该只能访问引擎项目提供的API,所以我将引擎头文件目录添加到游戏包含目录中,并将生成的Engine.lib与其他库目录一起添加到游戏项目中。
此时,引擎项目成功编译。
我希望游戏项目也能正常工作,但是当我尝试用简单的main.cpp编译此项目时,编译器显示此错误(引用来自引擎项目的文件):
-- 错误C1083 无法打开包括文件:'GL/glew.h':没有那个文件或目录
我不想在我的游戏项目中包含opengl、glew和glfw库和包含目录,因为用户不应该访问此API。
那么...如何达到这个目的(越简单越好)?
先行致谢
Game
中的一个文件包含一个Engine
的头文件,该头文件中又include
了GL/glew.h,那么间接地这个文件也包含了GL/glew.h。解决这个问题的方法通常是将这样的include
移到Engine
的源文件中,如果可能的话则删除头文件中的include
。这样,它只会被使用它的文件包含,而不是每个使用该头文件的文件都会包含它。 - mascoj