Visual Studio 2013 C++链接静态库glew,虚拟机上的glfw
我无法在Visual Studio 2013 C++项目中链接静态库。Visual Studio 2013 C++链接静态库glew,虚拟机上的glfw
- 我下载了最新的GLEW-1.11.0-win32和GLFW-3.1.1.bin.WIN32
-
设定的路径,包括目录 (项目属性> C/C++ “附加包含目录”)
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common
-
添加路径LIB文件 (项目属性>链接>常规 “附加库目录”)
C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common\Libs
-
添加库名 (项目属性>链接>输入 “附加依赖”)
glew32.lib glfw3.lib
-
定义preprocesor GLEW_STATIC(当我删除此才看得到)
(project Properties > C/C++ > Preprocessor "Preprocessor Definitions")
当我建立我的项目以下错误发生:
Error 1 error LNK2001: unresolved external symbol _glewExperimental C:\Users\User\documents\visual studio 2013\Projects\OpenGL\OpenGL\Source.obj OpenGL
Error 2 error LNK1120: 1 unresolved externals C:\Users\User\documents\visual studio 2013\Projects\OpenGL\Debug\OpenGL.exe OpenGL
当我想这COMPLE
#include<Windows.h>
#include<GL\glew.h>
#include<GLFW\glfw3.h>
#include<iostream>
GLFWwindow * window;
using namespace std;
int main()
{
glewExperimental = TRUE;
GLenum error = glewInit();
if (error != GLEW_OK)
{
cout << "Error!" << endl;
}
system("pause");
return 0;
}
的Windows 8.1当前虚拟机(VirtualBox的)和Mirosoft的Visual Studio 2013
我做错了吗?在此论坛的其他主题中,此解决方案可正常工作。
当我从目录中删除这两个库时,我得到了同样的错误,所以可能Visual没有看到这两个库。但路径设置正确。包含路径作品,所有头文件都可以通过intelsense查看。
@bogdan是正确的:GLEW的静态库版本是glew32s.lib。
顺便提一句,sourceforge.net上的GLEW installation page表示如果你想要静态链接,你必须“包含glew.h和glew.c到你的项目中。”虽然这听起来很容易,但对于每个OpenGL项目来说,这看起来不必要的粗糙。相反,做到以下几点:
- 添加GLEW_STATIC宏观调控下属性 - 通用属性 - C/C++ - 预处理 - 预处理定义
- 添加glew32s.lib下属性 - 通用属性 - 链接器 - 输入 - 附加库依赖项
- 如果您没有复制glew32s。LIB到Visual Studio中的默认库路径之一,路径添加到它下下属性 - 通用属性 - 链接器 - 常规 - 附加库目录
为我工作。
如果您不知道这一点,您可以添加新的性能表,例如, openglPropertySheet32Static,在物业管理(查看菜单 - 其他窗口 - 物业管理)。将你的openGL特定属性添加到它。不要忘记明确保存表格 - 我不确定它是否会自动保存在项目中。然后,你需要为未来的OpenGL项目做的事情是添加现有的属性表,openglPropertySheet32Static,在物业经理(你记得你保存它的地方,对吗?)。
美丽。经过几个小时寻找解决我的愚蠢的DLL问题。 – finnrayment
看着[文档在这里](http://glew.sourceforge.net/install.html),在我看来,'glew32.lib'不是实际的静态库,而只是一个导入库'glew32.dll'。该文件似乎意味着您需要实际构建源代码以便静态链接到它。 – bogdan
你知道该怎么做吗?每个教程都是关于链接自己的dll库。我发现了这个[link](http://blog.nuclex-games.com/2012/03/how-to-consume-dlls-in-visual-cxx/comment-page-1/),但它没有起作用。任何想法? – Szczepan
我从GLEW网站下载了二进制包,发现在'lib \ Release \ Win32'目录下,'glew32.lib'旁边还有'glew32s.lib'。我有一个偷偷的怀疑,那个's'是你正在寻找的实际的静态库。因此,在“附加依赖关系”中只进行这种更改并再次尝试(在您的设置中,其他一切似乎都很好,而且我在前面的评论中引用的文档似乎已过时 - [此其他页面](http:// glew .sourceforge.net/build.html)表示,预编译的静态库应该包含在二进制Windows包中)。 – bogdan