使用Visual Studios 2010时遇到GLFW和glew链接错误

3
简单来说:
error LNK2019: unresolved external symbol _glfwSetWindowTitle referenced in function _main
error LNK2019: unresolved external symbol __imp__glewInit@0 referenced in function _main
error LNK2001: unresolved external symbol __imp__glewExperimental
error LNK2019: unresolved external symbol _glfwTerminate referenced in function _main
error LNK2019: unresolved external symbol _glfwOpenWindow referenced in function _main
....etc....

在链接器-输入-附加依赖项中:
opengl32.lib
glfw.lib
glew32.lib
glu32.lib

我已经尽我所能尝试各种方法,但都没有成功,因此某些方法可能并不必要。

然后在附加库目录中,我有:$(VSInstallDir)lib; $(Path),这两个都不应该是必需的。我把库文件放在那里,并且还尝试将它们复制到项目目录和每个子目录中,但仍然没有用。非常感谢任何建议或见解!

3个回答

0
也许你添加了 #define GLFW_DLL,所以出现了错误。如果你想使用GLFW的DLL版本,你应该添加GLFWDLL.lib。
请查看GLFW 2.7.4 release notes

我没有定义GLFW_DLL,尽管我已经尝试过使用它,包括DLL和GLFWDLL.lib。 - Fulluphigh

0

关于GLFW的问题我不确定,但对于GLEW,我必须定义GLEW_STATIC。

前往项目->属性->C/C++->预处理器,然后在预处理器定义下添加GLEW_STATIC。


0

我遇到了一个非常类似的问题。我可以在我的入口点编写代码,使用GLFW和GLEW创建窗口,但是一旦我将其抽象成单独的文档(即app.hpp),并将其包含到我的入口点中,尽管代码正确,但它无法编译。

错误 LNK2019:在函数_main中引用了未解析的外部符号__imp__glewInit@0 错误 LNK2001:在函数_main中引用了未解析的外部符号__imp__glewExperimental

我得到这两个错误是因为某种方式,GLEW没有被正确地包含到我的项目中。实际问题是链接器没有获得所需的正确文档。即我使用的是glew32s.dll而不是glew32.dll。

立即的解决方法是停止使用GLEW_STATIC并使用GLEW。我执行了与下面列出的相同步骤,只是使用glew32.dll而不是静态的GLEW,对我来说一切都正常工作。

确保在以下位置进行了GLFW和GLEW的包含:

属性> C/C++>常规>其他包含目录

然后您需要在以下位置链接库GLFW和GLEW:

属性 > 链接器 > 常规 > 附加库目录
当然,确保你告诉输入哪些 DLL 你想使用(在这种情况下,是 GLFW 和 GLEW)
属性 > 链接器 > 输入 > 附加依赖项
然后,将你刚刚添加到附加依赖项中的 GLFW 和 GLEW DLL 放置在包含入口点(main.cpp)的文件夹中。
这解决了我所有问题——实际上,这与您的问题类似。
希望这解决了你的问题。特别注意将这些 DLL 文件复制到包含入口点的文件夹中——这就是我的短板所在。
opengl32.lib glfw3.lib glew32s.lib glew32.lib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接