Не работает программа с GLFW и GLEW

Рейтинг: -1Ответов: 1Опубликовано: 20.04.2023

Изучаю OpenGl по туториалу и при попытке запустить скомпилированную программу, ничего не происходит.

main.cpp

#include <iostream>
#include <GL/glew.h>
#include <GLFW/glfw3.h>

int main()
{
    
    std::cout<<"Test";//Строчка не выполняется

    //Init
    glfwInit();//Если данная строка есть - программа ничего не делает
    
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);

    //Window

    GLFWwindow *window = glfwCreateWindow(800, 600, "Openg GL", nullptr, nullptr);
    if (window==nullptr){
        std::cout<< "Failed to create GLFW window\n";
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);

    
    glewExperimental = GL_TRUE;
    if (glewInit() != GLEW_OK)
    {
        std::cout<< "Failed to initialize GLEW\n";
        return -1;
    }

    int width, height;
    glfwGetFramebufferSize(window, &width, &height);

    glViewport(0, 0, width, height);

    while(!glfwWindowShouldClose(window))
    {
        glfwPollEvents();
        glfwSwapBuffers(window);
    }

    glfwTerminate();
    return 0;
}

Команды для компиляции:

g++ -c main.cpp -I src/include
g++ -o main31 main.o -L src/lib -l glew32 -l mingw32 -l opengl32 -l glfw3dll

libopengl32.a скачал с этого сайта

Структура проекта:

Структура проекта

Попытка запустить main31.exe (cmd):

C:\cpp_projects\leranOG\makeout>main.exe

C:\cpp_projects\leranOG\makeout>

OpenGL имеется, другие программы использующие opengl+sfml работают

Использую mingw32 v7.3.0

GLFW: 3.3.8 bin win32

GLEW: 2.1.0 win32

ОС: Windows 10 Pro

Ответы

▲ 0Принят

В структуру проекта необходимо добавить следующие dll-файлы:

  • glew32.dll
  • glfw3.dll