Visual Studio 2013 C++链接虚拟机上的静态库glew、glfw
Visual Studio 2013 C++ link static library glew, glfw on virtual machine
我无法链接visual studio 2013 c++项目中的静态库。
- 我下载了最新的glew-1.11.0-win32和glfw-3.1.1.bin.win32
-
将路径设置为包含目录(项目属性>C/C++"其他包含目录")
C:UsersUserDocumentsVisual Studio 2013ProjectsOpenGLOpenGLCommon
-
添加库文件的路径(项目属性>链接器>常规"附加库目录")
C:UsersUserDocumentsVisual Studio 2013ProjectsOpenGLOpenGLCommonLibs
-
添加库名称(项目属性>链接器>输入"附加依赖项")
glew32.lib glfw3.lib
-
定义前处理程序GLEW_STATIC(当我删除它时它是可见的)
(project Properties > C/C++ > Preprocessor "Preprocessor Definitions")
当我构建我的项目时,出现以下错误:
Error 1 error LNK2001: unresolved external symbol _glewExperimental C:UsersUserdocumentsvisual studio 2013ProjectsOpenGLOpenGLSource.obj OpenGL
Error 2 error LNK1120: 1 unresolved externals C:UsersUserdocumentsvisual studio 2013ProjectsOpenGLDebugOpenGL.exe OpenGL
当我想完成这个
#include<Windows.h>
#include<GLglew.h>
#include<GLFWglfw3.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可能看不到这两个libs。但路径设置正确。包括路径工作,所有头文件都是可见的intelense。
@bogdan是正确的:GLEW的静态库版本是glew32s.lib.
顺便说一句,sourceforge.net上的GLEW安装页面说,如果你想要静态链接,你必须"在你的项目中包括GLEW.h和GLEW.c。"虽然这听起来很容易,但对每个openGL项目来说,这样做似乎是不必要的粗糙。相反,请执行以下操作:
- 在属性-公共属性-下添加GLEW_STATIC宏C/C++-预处理器-预处理器定义
- 在属性-公共属性-链接器-输入-其他库依赖项下添加glew32s.lib
- 如果您没有将glew32s.lib复制到Visual Studio的默认库路径之一,请将该路径添加到属性-公共属性-链接器-常规-其他库目录下
为我工作。
如果您没有意识到这一点,您可以在属性管理器(视图菜单-其他窗口-属性管理器)中添加新属性表,例如openglPropertySheet32Static。将您的openGL特定属性添加到其中。不要忘记显式保存工作表——我不确定它是否与项目一起自动保存。然后,对于未来的openGL项目,您所要做的就是在属性管理器中添加现有属性表,openglPropertySheet32Static(您还记得保存它的位置吗?)。
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- #为""定义宏;静态";针对不同的上下文
- cmake如何在fedora工作站中找到boost静态库包
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- cmake在我的项目中所需的所有静态库都不成功
- C++从另一个类访问公共静态向量的正确方法是什么
- 基于boost的程序的静态链接——zlib问题
- 在静态库中嵌入类方法
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在C++中获得"静态纯虚拟"功能?
- 私有类型的静态常量成员
- 使用gcc从静态链接的文件中查找可选符号
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 如何在C++中使用非静态成员函数作为回调函数
- 将源中的 GLEW 与 cmake 静态链接
- Visual Studio静态链接(FreeGlut,Glew)
- 链接glew.lib作为带有日食的静态库
- 编译简单的静态OpenGL 4.0程序,使用MinGW,freeglut和glew
- Visual Studio 2013 C++链接虚拟机上的静态库glew、glfw