设置 Visual Studio 库项目依赖项

omn*_*iyo 5 c++ opengl glew static-libraries visual-studio

鉴于以下情况,我正在努力寻找在 Visual Studio(即 2015)中设置依赖项的正确方法:

我有2个项目:

  • 引擎:它是一个静态库项目,依赖于我在“Librarian”、“其他依赖项”部分中指定的 glfw、glew 和 opengl .lib 文件。我还正确添加了 include 和 libs 目录。
  • 游戏:它应该只能访问 Engine 项目提供的 API,因此我将 Engine headers 目录添加到 Game include 目录中,并且对于生成的 Engine.lib 和附加库目录也是如此。

至此,Engine项目编译成功。

我希望 Game 项目也能工作,但是当我尝试使用简单的 main.cpp 编译该项目时,编译器显示此错误(引用 Engine 项目中的文件):

-- 错误 C1083 无法打开包含文件:'GL/glew.h':没有这样的文件或目录

我不想包含 opengl、glew 和 glfw 库,也不想包含目录到我的游戏项目中,因为用户不应该访问此 API。

那么......实现这一目标的正确方法是什么(越简单越好)?

提前致谢

小智 3

将静态库链接到同一解决方案中的另一个项目的步骤:

如果您的Engine项目还不是库,请将其设为库。建造它。

右键单击您的解决方案或您的项目之一,然后转到Build dependencies -> Project dependencies。在下拉列表中选择您的Game项目,然后选中 旁边的框Engine。这会让编译器知道Game没有Engine.

转到您的"Game" project properties -> C/C++ -> General -> Additional include directories,确保您Engine在此处拥有项目头文件的位置。

转到C/C++ -> Code Generation,确保两个项目在调试和发布时使用相同的运行时库。

转到"Game" Project properties -> Linker此处并将其他项目的 lib 文件的位置放在此处。

转到Linker -> Input添加Engine.lib或与此列表等效的内容。

您应该有一个链接到库的项目。如果这没有帮助,请回复我的回复。