使用Visual Studio将nanogui链接到OpenGL项目

时间:2017-11-13 22:43:48

标签: c++ opengl visual-studio-2017 glfw

我试图将nanogui添加到已经使用glfw的OpenGL项目中。有一个示例在文档中确切地说明了如何执行此操作,但我无法在此示例项目之外复制它。

我的问题出现在链接步骤:

Error LNK2019   unresolved external symbol "public: __thiscall nanogui::Screen::Screen(void)" (??0Screen@nanogui@@QAE@XZ)

有罪的行是nanogui::Screen * screen = new nanogui::Screen();,是唯一一个引用该库的行。

问题似乎很明显,编译器理解我将需要nanogui函数并期望链接器找出这些函数的代码在哪里,除了链接器失败。

这就是我所做的:

  • 在main.cpp中包含nanogui.h
  • 在项目设置中添加了它的路径 - > C / C ++ - > general->其他包含目录。这解释了编译部分工作的原因
  • 在项目设置中添加了nanogui.lib的路径 - >链接器 - >输入 - >附加依赖项。那应该解决我的问题,但事实并非如此。

令我感到困惑的是,我能够从源代码编译库并运行示例项目。必须有某种我缺少的参数/标志,但我无法弄明白。我在样本项目中使用预处理器标记玩了一点但没有运气。

编辑:当我使用作者提供的项目并使用CMake生成但无法在其外部复制时,我设法运行sample project

1 个答案:

答案 0 :(得分:0)

您需要为x64(而不是默认的x86)构建库。只需使用cmake -G "Visual Studio 15 2017 Win64" ..(变体)运行cmake,即显式指定Win64。然后,您可以简单地在Visual Studio中构建NanoGUI.sln并链接到生成的nanogui.lib。如果未使用cmake指定目标,则只能获得Win32选项作为构建目标,根据文档不支持。