C++ 为什么我需要FreeGLUT来编译和链接GLFW程序
我已经编译并链接了一个简单的OpenGL程序。它是一个C++控制台程序,打印版本号。它是有效的,但我不明白它为什么有效。请你帮我理解一下 我已经链接了GLFW和FreeGLUT库。我认为这些是可供选择的工具包。但是,如果我取出FreeGLUT库,glGetString将不再链接 它们是替代工具包吗?为什么我需要链接到FreeGLUT?我是否缺少一个应该链接的库C++ 为什么我需要FreeGLUT来编译和链接GLFW程序,c++,opengl,C++,Opengl,我已经编译并链接了一个简单的OpenGL程序。它是一个C++控制台程序,打印版本号。它是有效的,但我不明白它为什么有效。请你帮我理解一下 我已经链接了GLFW和FreeGLUT库。我认为这些是可供选择的工具包。但是,如果我取出FreeGLUT库,glGetString将不再链接 它们是替代工具包吗?为什么我需要链接到FreeGLUT?我是否缺少一个应该链接的库 // GLVersion.cpp : Defines the entry point for the console applicati
// GLVersion.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "glfw3.h"
#include "glfw3native.h"
#include "freeglut.h"
#include "glut.h"
int main(int argc, char**argv)
{
const GLubyte *Vstr;
glfwInit();
GLFWwindow* mywindow = glfwCreateWindow(800,600,"GLFW",NULL,NULL);
glfwMakeContextCurrent(mywindow);
Vstr = glGetString(GL_VERSION);
fprintf(stderr, "Your OpenGL version is %s\n", Vstr);
getchar();
return 0;
}
glGetString
是一个OpenGL函数,而不是GLU函数。要链接它,您必须链接到OpenGL32.lib
谢谢。我现在在Visual Studio 2015中拥有以下链接器数据:glfw3.lib;glfw3dll.lib;opengl32.lib;%(附加依赖项)。上面的示例编译并链接OK(那么我是否需要引入FreeGLUT)?如果我添加新的代码行,比如glClearColor,也可以。如果我添加glShaderSource,它将编译但不链接该函数或其他类似函数。我使用了相同的链接库。我错过了一个库吗?@FrancisKing大多数函数都需要使用OpenGL函数加载器。有许多装载机可供选择,如glew、glxw、gl3w或glLoadGen。