C++ 为什么我需要FreeGLUT来编译和链接GLFW程序

C++ 为什么我需要FreeGLUT来编译和链接GLFW程序,c++,opengl,C++,Opengl,我已经编译并链接了一个简单的OpenGL程序。它是一个C++控制台程序,打印版本号。它是有效的,但我不明白它为什么有效。请你帮我理解一下 我已经链接了GLFW和FreeGLUT库。我认为这些是可供选择的工具包。但是,如果我取出FreeGLUT库,glGetString将不再链接 它们是替代工具包吗?为什么我需要链接到FreeGLUT?我是否缺少一个应该链接的库 // GLVersion.cpp : Defines the entry point for the console applicati

我已经编译并链接了一个简单的OpenGL程序。它是一个C++控制台程序,打印版本号。它是有效的,但我不明白它为什么有效。请你帮我理解一下

我已经链接了GLFW和FreeGLUT库。我认为这些是可供选择的工具包。但是,如果我取出FreeGLUT库,glGetString将不再链接

它们是替代工具包吗?为什么我需要链接到FreeGLUT?我是否缺少一个应该链接的库

// 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。