C++ 使用gl3w的OpenGL

C++ 使用gl3w的OpenGL,c++,opengl,linker,sfml,C++,Opengl,Linker,Sfml,我正在努力学习OpenGL。我将SFML窗口模块用于上下文,并将gl3w用作加载库。我经常使用SFML,因此在本教程中为OpenGL设置SFML并不成问题: 我可以毫无问题地运行示例代码。我链接了OpenGL opengl32.lib和glu32.lib+sfml*.lib所需的所有内容 然后我按照这个答案得到gl3w: 但是现在如果我试着运行这段代码,它主要是来自SFML的示例代码 #include <SFML/gl3w.h> #include <SFML/Window.hp

我正在努力学习OpenGL。我将SFML窗口模块用于上下文,并将gl3w用作加载库。我经常使用SFML,因此在本教程中为OpenGL设置SFML并不成问题:

我可以毫无问题地运行示例代码。我链接了OpenGL opengl32.lib和glu32.lib+sfml*.lib所需的所有内容

然后我按照这个答案得到gl3w:

但是现在如果我试着运行这段代码,它主要是来自SFML的示例代码

#include <SFML/gl3w.h>
#include <SFML/Window.hpp>

static const GLfloat red[] = { 1.0f, 0.f, 0.f, 1.f };

int main()
{
    // create the window
    sf::Window window(sf::VideoMode(800, 600), "OpenGL", sf::Style::Default, sf::ContextSettings(32));
    window.setVerticalSyncEnabled(true);
    gl3wInit(); //ignore return value for now

    // load resources, initialize the OpenGL states, ...
    // run the main loop
    bool running = true;
    while (running)
    {
        // handle events
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
            {
                // end the program
                running = false;
            }
            else if (event.type == sf::Event::Resized)
            {
                //adjust the viewport when the window is resized
                glViewport(0, 0, event.size.width, event.size.height);
            }
        }

        glClearBufferfv(GL_COLOR, 0, red);

        // end the current frame (internally swaps the front and back buffers)
        window.display();
    }

    // release resources...

    return 0;
}
我仔细检查了LIB链接是否正确

我使用Visual Studio 2013在Windows 7上工作


有人知道我做错了什么吗?

你忘了编译gl3w

假设您已经:

抓取python脚本 运行它:pythongl3w_gen.py 找到生成的gl3w.h glcorearb.h和gl3w.c文件 有两种方法:

第一条路。只需将这些文件包含在项目中,就可以将其与您自己的源代码一起编译。注意,您需要保留GL文件夹或手动修复gl3w.c中的include

第二条路。创建新项目将所有三个文件添加到其中并编译为静态库。然后将它链接到您的应用程序,或者只是在命令行或makefile中编译它,等等


快乐编码

您忘了编译gl3w

假设您已经:

抓取python脚本 运行它:pythongl3w_gen.py 找到生成的gl3w.h glcorearb.h和gl3w.c文件 有两种方法:

第一条路。只需将这些文件包含在项目中,就可以将其与您自己的源代码一起编译。注意,您需要保留GL文件夹或手动修复gl3w.c中的include

第二条路。创建新项目将所有三个文件添加到其中并编译为静态库。然后将它链接到您的应用程序,或者只是在命令行或makefile中编译它,等等


快乐编码

是否需要从单独的项目中将gl3w编译为静态库?或者你能直接从源头上做到这一点吗?当我从gl3w源代码运行make时,不会生成任何库文件。是否需要从单独的项目中将gl3w编译为静态库?或者你能直接从源头上做到这一点吗?当我从gl3w源代码运行make时,不会生成任何库文件
1>OpenGL.obj : error LNK2019: unresolved external symbol _gl3wInit referenced in function _main
1>OpenGL.obj : error LNK2001: unresolved external symbol _gl3wViewport
1>OpenGL.obj : error LNK2001: unresolved external symbol _gl3wClearBufferfv