Visual Studio:创建使用另一个DLL的DLL

时间:2017-09-11 05:53:33

标签: visual-studio dll glfw glew

我正在使用DLL构建visual studio,其中涉及安装以下库:

  • GLM
  • GLFW
  • GLEW

我使用以下方法将这些库链接到visual studio:

  • 在项目属性页面中指定Additional Include Directories
  • 在项目属性页面中指定Additional Dependencies
  • 在项目属性页面中指定Additional Library Directories

当然GLM是仅限标题的库,这意味着我只需要为Additional Include Directories指定GLM。而且我的dll建得非常好。

但是在测试项目中使用库时会出现真正的问题。我使用上面提到的方法将我的测试项目链接到我的库,但是当我尝试构建测试项目时,它会产生以下结果:

Cannot open include file <GLFW/glfw3.h>

同样适用于glew。当另一个测试项目使用该库时,似乎找不到这些库。我怎样才能解决这个问题?任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

为所有项目正确设置Additional Include Directories。编译器不会神奇地继承项目中的设置,而项目恰好将其输出链接到另一个项目中。因此,您必须为它看到的任何源文件提供正确的包含路径。为了避免使用硬编码路径来包含目录,您可以对两个项目使用property sheet通用。或者你可以解决代码中的问题,并使用PIMPL成语(最终简单到例如声明一些GL类型并在公共类中使用unique_ptr),因此项目的标题永远不会暴露任何外部包含文件。