我尝试了几种方法让GLEW使用我的VS2010项目。没有成功。起初我尝试使用网站上预先构建的库和dll。我从http://glew.sourceforge.net/index.html下载了这些预先构建的文件,并执行了类似:setting up GLEW windows?
的操作.h文件放在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Include
.lib文件放在C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Lib \ x64中(我还将它们放在一级以防万一)
< / LI>glew32.dll转到C:\ Windows \ SysWOW64
linker-&gt;输入将glew32.lib,GlU32.lib和OpenGL32.lib添加到其他依赖项
预处理器定义:放入GLEW_BUILD和GLEW_STATIC(我的程序需要是一个DLL,但其他似乎与STATIC成功,所以我包括两者)
当我使用这些设置运行程序时,glewInit()不是那么GLEW_OK。即使glewInit()失败,它仍然会奇怪地识别该函数。当我使用像“glCreateProgram()”这样的另一个glew函数时,我收到以下错误:
Error 56 error LNK2020: unresolved token (0A000327) __glewCreateProgram
C:\Users\aab\studyWrist\Visualization\libCoin3D\ShaderHandler.obj libCoin3D
Error 57 error LNK2001: unresolved external symbol __glewCreateProgram
C:\Users\aab\studyWrist\Visualization\libCoin3D\ShaderHandler.obj libCoin3D
Error 58 error LNK1120: 2 unresolved externals
C:\Users\aab\studyWrist\Visualization\libCoin3D\Debug\libCoin3D.dll libCoin3D
所以,关于stackoverflow的一些其他建议是重建glew。接下来我尝试在VS2010中构建glew32d。我跟着OpenGL: How to compile glew32.dll from source file并获得了glew32d.dll和glew32d.lib。
glew32d.lib放入C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Lib \ x64(如果我把它放在x64文件夹中,程序只识别lib,而不是升级)
glew32d.dll转到C:\ Windows \ SysWOW64
linker-&gt;输入添加glew32d.lib(此更改),GlU32.lib和OpenGL32.lib添加到其他依赖项
预处理器定义:放入GLEW_BUILD和GLEW_STATIC
我的以下错误仅由glewInit引起:
Error 56 error LNK2028: unresolved token (0A000383) "extern "C" unsigned int
__cdecl glewInit(void)" (?glewInit@@$$J0YAIXZ) referenced in function "public: __cdecl
MasterCube::MasterCube(void)" (??0MasterCube@@$$FQEAA@XZ)
C:\Users\aab\studyWrist\Visualization\libCoin3D\MasterCube.obj libCoin3D
Error 57 error LNK2019: unresolved external symbol "extern "C" unsigned int
__cdecl glewInit(void)" (?glewInit@@$$J0YAIXZ) referenced in function "public: __cdecl
MasterCube::MasterCube(void)" (??0MasterCube@@$$FQEAA@XZ)
C:\Users\aab\wristuptodate\studyWrist\Visualization\libCoin3D\MasterCube.obj
libCoin3D
知道出了什么问题以及如何解决它?
答案 0 :(得分:6)
不要将它们添加到系统目录中。你不应该把东西扔进系统目录。或者MSVC目录。你应该在你的驱动器上的某个地方有自己的位置来做这些事情,以免你不小心破坏了东西。 您告诉您的工具,即Visual Studio在哪里可以找到您的库,而不是将您的库放在工具,即visual studio目录中。 您可以将库保留在项目目录中。 您可以按照以下几组来设置GLEW我假设您已经创建了VC ++ win32控制台应用程序项目。
步骤1.在项目目录中创建目录让我们假设 目录名称为“ thirdparty ”
步骤2.复制并通过目录中的 glew-1.9.0 库文件夹 的第三方强>
步骤3.现在转到菜单项目 - &gt;(projectName)属性..或按 Alt + F7。您将看到项目属性窗口。
步骤4.转到“配置属性” - > VC ++目录选项。从 在右边给出了glew库的路径。包括在内 目录提供路径:$(ProjectDir)thirdparty \ glew-1.9.0 \ include;在 库目录提供路径:$(ProjectDir)thirdparty \ glew-1.9.0 \ lib;
现在按照以下步骤进行链接。
步骤5.转到链接器 - >输入选项。链接glew32.dll.In其他 依赖关系:glew32.dll;
答案 1 :(得分:3)
最佳做法是将GLEW添加到项目文件夹并将其链接到您的应用程序。您可以在此处找到一个分步教程,用于链接GLEW(以及其他一些库):
http://solarianprogrammer.com/2013/05/10/opengl-101-windows-osx-linux-getting-started/
只需忽略与您无关的部分,然后转到描述如何在Windows中创建OpenGL项目的部分。