Russian Qt Forum
Ноябрь 24, 2024, 06:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenGL undefined reference to `_imp__glClearColor@16'  (Прочитано 13497 раз)
Lled
Гость
« : Декабрь 23, 2015, 14:57 »

Здравствуйте. Хочу в Qt Creator повторить примеры по OpenGL, но почему-то на все функции OpenGL идут ошибки. Как исправить? Например, вот содержимое файлов проекта:
opengl003.pro
Код:
QT       += core gui opengl

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = opengl003
TEMPLATE = app


SOURCES += main.cpp \
    mainscene.cpp

HEADERS  += \
    mainscene.h

mainscene.h
Код:
#ifndef MAINSCENE_H
#define MAINSCENE_H

#include <QGLWidget>

class MainScene : public QGLWidget
{
protected:
    void initializeGL();
    void resizeGL(int w, int h);
    void paintGL();
public:
    MainScene(QWidget* parent = 0);
};

#endif // MAINSCENE_H

mainscene.cpp
Код:
#include "mainscene.h"

MainScene::MainScene(QWidget* parent) : QGLWidget(parent)
{
}

void MainScene::initializeGL()
{
    glClearColor(1.0, 1.0, 1.0, 1.0);
}

void MainScene::resizeGL(int w, int h)
{
}

void MainScene::paintGL()
{
}

main.cpp
Код:
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    return a.exec();
}

Ошибка:
Цитировать
C:\Users\sa\Documents\Progs\build-opengl003-Desktop_Qt_5_5_1_MinGW_32bit-Debug/../opengl003/mainscene.cpp:9: undefined reference to `_imp__glClearColor@16'
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Декабрь 23, 2015, 15:00 »

У меня такое обычно вылетает, когда в Qt нет соответствующей поддержки opengl.
Пересоберите с -opengl=desktop или скачайте готовое решение
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #2 : Декабрь 23, 2015, 15:45 »

добавьте LIBS += -lglu32 -lopengl32
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Lled
Гость
« Ответ #3 : Декабрь 23, 2015, 15:47 »

Спасибо. Но проблема решилась как-то по другому  Непонимающий. Нашел http://stackoverflow.com/questions/31633401/qt-5-5-0-cannot-find-opengl-functions. В файл opengl003.pro добавил LIBS += -lopengl32.
Код:
QT       += core gui opengl

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = opengl003
TEMPLATE = app

LIBS += -lopengl32

SOURCES += main.cpp \
    mainscene.cpp

HEADERS  += \
    mainscene.h
Теперь ошибки нет. А что я добавил? Почему пришлось подключать еще какую-то библиотеку?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Декабрь 23, 2015, 16:10 »

Это базовая библиотека OpenGl, Qt ее только использует, а базовые функции содержатся в opengl32.lib.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Lled
Гость
« Ответ #5 : Декабрь 23, 2015, 16:38 »

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.206 секунд. Запросов: 23.