2 / 2 / 0
Регистрация: 24.01.2012
Сообщений: 96

Ошибки линковщика в учебном примере OpenGL

13.09.2016, 16:25. Показов 866. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Пытаюсь освоить OpenGL на Qt'е. Не получается запустить учебный пример.
Выдает 20 ошибок типа "неразрешенный внешний символ" и "неразрешенная ссылка".
Помогите пожалуйста.

mywidget.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef MYWIDGET_H
#define MYWIDGET_H
 
#include <QWidget>
//#include <QGLWidget>
#include <QtOpenGL/QGLWidget>
 
class MyWidget : public QGLWidget
{
public:
    MyWidget(QWidget *parent = 0);
    ~MyWidget();
 
private:
    void initializeGL();
    void paintGL();
};
 
#endif // MYWIDGET_H
mywidget.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "mywidget.h"
 
MyWidget::MyWidget (QWidget *parent) :
    QGLWidget( parent )
{
}
 
void MyWidget::initializeGL()
{
}
 
void MyWidget::paintGL()
{
}
main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include "mywidget.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();
 
    return a.exec();
}
*.pro
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
QT       += core gui
QT       += core gui opengl
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET = first
TEMPLATE = app
 
 
SOURCES += main.cpp\
        mywidget.cpp
 
HEADERS  += mywidget.h
 
FORMS    += mywidget.ui
 Комментарий модератора 
Код С++\Qt обозначается с помощью тега CPPQT.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2016, 16:25
Ответы с готовыми решениями:

Странные ошибки линковщика Qt
Имеется класс главного окна MainWindow #ifndef MAINWINDOW_H #define MAINWINDOW_H #include &lt;QPushButton&gt; #include &lt;QTableView&gt;...

Немогу найти ошибку в учебном примере
Привет всем. Я тут переписал из учебника пример построения главного окна программы но есть ошибка, сам нашёл только две, но есть ещё а...

Ошибки линковщика
Люди добрые, подскажите, как быть или дайте ссылку на статью о том, как работает линковщик.. Есть один главный хэдер, подключащий всё...

6
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
13.09.2016, 16:48
Цитата Сообщение от Старый Посмотреть сообщение
QT += core gui
QT += core gui opengl
чей то последняя строчка какая то странная
зачем дублировать подключенные модули
напиши
Code
1
QT += opengl
ну и если работаешь в креаторе запусти из меню сборка qmake
1
2 / 2 / 0
Регистрация: 24.01.2012
Сообщений: 96
13.09.2016, 19:24  [ТС]
ValeryS, спасибо.
Так же убрал деструктор
C++ (Qt)
1
~MyWidget();
и окно появилось

Добавлено через 2 часа 7 минут
Чорд.
Пытаюсь нарисовать квадрат, и снова ошибки с неразрешенным внешними символами.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "mywidget.h"
 
MyWidget::MyWidget (QWidget *parent) :
    QGLWidget( parent )
{
}
 
void MyWidget::initializeGL()
{
     glClearColor( 0.0f, 0.0f, 1.0f, 1.0f );
}
 
void MyWidget::paintGL()
{
    // Clear the window with current clearing color
     glClear( GL_COLOR_BUFFER_BIT );
         // Set current drawing color to red
         //        R     G     B
     glColor3f( 1.0f, 0.0f, 0.0f );
 
         // Draw a filled rectangle with current color
     glRectf( -25.0f, 25.0f, 25.0f, -25.0f );
}
 
void MyWidget::resizeGL( int w, int h )
{
    // Prevent a divide by zero
    if( h == 0 ) {
        h = 1;
    }
 
    // Set Viewport to window dimensions
    glViewport( 0, 0, w, h );
 
    // Reset coordinate system
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
 
    // Establish clipping volume (left, right, bottom, top, near, far)
    GLfloat aspectRatio = ( GLfloat )w / ( GLfloat )h;
    if ( w <= h ) {
        glOrtho( -100.0, 100.0, -100 / aspectRatio, 100.0 / aspectRatio,
                  1.0, -1.0);
    } else {
        glOrtho( -100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0,
                 1.0, -1.0 );
    }
 
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();
}
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
13.09.2016, 20:27
Старый, посмотри вот здесь
https://habrahabr.ru/post/132674/
вроде понятно написано
1
2 / 2 / 0
Регистрация: 24.01.2012
Сообщений: 96
13.09.2016, 20:50  [ТС]
ValeryS, да у меня вроде все как там сделано...
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
13.09.2016, 21:16
Цитата Сообщение от Старый Посмотреть сообщение
MyWidget:
а ты этот класс не в отдельном ли файле сделал?
если работаешь с QtCreator ом, у него есть одна особенность, файлы добавляются в проект,но маке файл не правится
в результате компилятор их не компилит
нужно после добавления файла запустить qmake, он из pro файла сгенерит новый маке файл
помню сам сидел часа три после VS и репу чесал, как так все в порядке, а линкер дуркует
0
2 / 2 / 0
Регистрация: 24.01.2012
Сообщений: 96
13.09.2016, 21:36  [ТС]
ValeryS, отдельный. Я запускал qmake, и QT мне даже пустое окно выводил. А вот попытался квадрат нарисовать, и все снова рухнуло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.09.2016, 21:36
Помогаю со студенческими работами здесь

Ошибки линковщика
Windows XP MS Visual Studio 2005 Приветствую! Начал разбираться с подключением dll к проекту, и сразу наткнулся на несколько...

Непонятные ошибки линковщика
В общем пытаюсь прикрутить работу с пост запросами но появляются ошибки не могу понять как всё это исправить

Ошибки линковщика при сборке
Делал по примеру, а нифига не работает... Вот код: funcs.cpp #include &quot;lagrange.h&quot; void lagrange_start() { lagrange first; ...

Ошибки линковщика при использовании сокетов
Доброго времени суток! При попытки скомпилировать код, линковшик выдает ошибки. Хотелось бы узнать: Почему и как это убрать? Код: ...

Моделирование океана - ошибки линковщика при компиляции
Набрал огромный код из книги &quot;C++ изнутри&quot;, при компиляции получаю: Как исправить? Проект VS: http://rghost.ru/41456754


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru