繁体   English   中英

在Visual Studio下编译错误LNK 2019

[英]Compiling error lnk 2019 under visual studio

我不知道该怎么办。 我搜索了一些解决方案,但没有任何帮助。

链接器错误:

"error LNK2019: unresolved external symbol __ imp__glDrawArrays"

源代码:

#include <stdio.h>
#include <stdlib.h>
#include <GL\glew.h>
#include <GLFW\glfw3.h>

int main()
{
    if(glfwInit()==false){
        //Did not succeed
        fprintf(stderr, "GLFW faild ");
        return -1;
    }
    glfwWindowHint(GLFW_SAMPLES,4);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);


    GLFWwindow* window;
    window = glfwCreateWindow(640,480,"Hallo Welt",NULL,NULL);
    if(!window)
    {
        fprintf(stderr, "Window failed");
        glfwTerminate();

        return -1;
    }
    glfwMakeContextCurrent(window);
    glewExperimental = true;
    if(glewInit() !=  GLEW_OK)
    {
        fprintf(stderr, "glew init failed");
        glfwTerminate();
        return -1;
    }

    GLuint vaoID; //Vertex array erzeugt
    glGenVertexArrays(1, &vaoID);
    glBindVertexArray(vaoID); // wir verwenden das VA

    static const GLfloat verts[] = {
        -1.0f,-1.0f,0.0f,
        1.0f,-1.0f,0.0f,
        0.0f,1.0f,0.0f};
    //Generate VBO
    GLuint vboID;
    glGenBuffers(1, &vboID);
    glBindBuffer(GL_ARRAY_BUFFER,vboID);

    glBufferData(GL_ARRAY_BUFFER,sizeof(verts),verts,GL_STATIC_DRAW);



    do{
        glDisableVertexAttribArray(0);
        glBindBuffer(GL_ARRAY_BUFFER,vboID);
        glVertexAttribPointer(0, 3,GL_FLOAT,GL_FALSE,0,(void*)0);

        glDrawArrays(GL_TRIANGLES,0,3);
        glDisableVertexAttribArray(0);

        glfwSwapBuffers(window);
        glfwPollEvents();
    } while(glfwWindowShouldClose(window)==false);

    return 0;
}

我为我的include和lib文件设置目录。 在链接器->输入下,我有glew32.lib,glew32s.lib,glfw3dll.lib

如果我删除函数glDrawArrays ,代码将起作用,并且我会得到黑色的窗口。 但是我想在窗口中绘制一个白色三角形。

您在这里有几个问题:

  1. 您正在链接到glew32.lib (动态-> DLL) glew32s.lib (静态)

    • 仅选择一个,我会建议glew32s.lib但请确保在使用glew32s.lib时将GLEW_STATIC添加到预处理器定义中。

  2. 您仅链接到支持库,而不链接到Windows附带的实际OpenGL运行时

    • 通过将OpenGL32.lib添加到您的库中来解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM