Ошибка undefined reference to `WinMain@16' в opengl-e [дубликат]

205
10 июля 2019, 06:50

На данный вопрос уже ответили:

  • Ссылка на неразрешенный внешний символ (возможные причины) 2 ответа

Создал простейшую сцену в опенгл (всё работает). Решил запихнуть её в класс стала выпрыгивать ошибка

undefined reference to `WinMain@16'

Вот код :

main.h

#ifndef MAIN_H
#define MAIN_H
#include <QCoreApplication>
#include <QTextStream>
#include <QTextCodec>
#include <cstdio> //беспечивает выполнение операций ввода/вывод (printf)
#include <glew.h> // обязательно первая графич библиотека
#include <GL/gl.h>
#include <glfw3.h>
// русишь
QTextStream outStream(stdout);
class MainWindow
{
    //глобальные переменные
    const char* APP_TITLE;
    //const int glfwWindowHint();
    const int gWindowWidth = 800;
    const int gWindowHeight = 600;
    GLFWwindow* gWindow;
public:
    int start();
    void glfw_onFramebufferSize(GLFWwindow* window, int width, int height);
    bool initOpenGL();
private:
};
#endif // MAIN_H

main.cpp

#include "main.h"
//int main(int argc, char *argv[])
int MainWindow::start()
{
    APP_TITLE = "Шашечки";
    gWindow = NULL;
//    QCoreApplication a(argc, argv);
//    return a.exec();
    outStream.setCodec(QTextCodec::codecForName("cp866"));
    if (!initOpenGL())
    {
        // An error occured
        outStream << QString("GLFW инициализация провалилась") << flush;
        return -1;
    }
    while (!glfwWindowShouldClose(gWindow))
    {
        // Poll for and process events
        glfwPollEvents();
        outStream <<QString("%1").arg(glfwGetTime());
        glfwSwapBuffers(gWindow);
    }
    glfwTerminate();
    return 0;
}
//-----------------------------------------------------------------------------
// Initialize GLFW and OpenGL
//-----------------------------------------------------------------------------
bool MainWindow::initOpenGL()
{
    //инициализация GLFW
    if(!glfwInit())
    {
//        outStream << QString("GLFW инициализация провалилась") << flush;
        return false;
    }
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
//    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_OPENGL_ANY_PROFILE, GLFW_OPENGL_CORE_PROFILE); // провер либо разкоменти верх
    /* forward compatible with newer versions of OpenGL as
       they become available but not backward compatible
       (it will not run on devices that do not support OpenGL 3.3 */
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
    // Create an OpenGL 3.3 core, forward compatible context window
    gWindow = glfwCreateWindow(gWindowWidth, gWindowHeight, APP_TITLE, NULL, NULL);
    if(gWindow == NULL)
    {
        outStream << QString("ошбика создания GLFW окна") << flush;
        glfwTerminate();
        return false;
    }
    // Make the window's context the current one
    glfwMakeContextCurrent(gWindow);
    // INitialize GLEW
    glewExperimental = GL_TRUE;
    if(glewInit() != GLEW_OK)
    {
        outStream << QString("GLEW инициализация провалилась") << flush;
        return false;
    }
    return true;
}
//-----------------------------------------------------------------------------
// Is called when the window is resized
//-----------------------------------------------------------------------------
void MainWindow::glfw_onFramebufferSize(GLFWwindow* window, int width, int height)
{
    glViewport(0, 0, width, height);
}

Что я делаю не так ?? Почему выпрыгнула ошибка ??

Answer 1

Спасибо @VTT всё заработало

добавил в main.cpp Код

int main()
{
    MainWindow w;
    w.start();
    return 0 ;
}

READ ALSO
Как узнать, является ли символ буквенным

Как узнать, является ли символ буквенным

У меня есть символьный массив, который я должен полностью проверитьНадо сделать так, чтобы проверялись только буквенные символы, а спец

197
Высокая нагрузка на ЦП при выполнении программы

Высокая нагрузка на ЦП при выполнении программы

При вводе количества секунд начинает грузить процессор

193
массив структур в классе c++

массив структур в классе c++

Подскажите, пожалуйста, как реализовать поставленную задачу"Завод выпускает разные измерительные приборы

185
Как укоротить сообщения об ошибках и предупреждения компилятора?

Как укоротить сообщения об ошибках и предупреждения компилятора?

Как укоротить сообщения об ошибках и предупреждения компилятора? Особенно при ошибках в шаблонах сначала идёт куча строк, в каком файле инстанциация...

190