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

Why do I need FreeGLUT to compile and link a GLFW program

本文关键字:链接 GLFW 程序 编译 FreeGLUT 为什么      更新时间:2023-10-16

我已经编译并链接了一个简单的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 %sn", Vstr);
    getchar();
    return 0;
}

glGetString是一个OpenGL函数,而不是一个GLU函数。要与之链接,您必须与 OpenGL32.lib .