Проект с OpenGL. |
Здравствуйте, гость ( Вход | Регистрация )
Проект с OpenGL. |
alsav22 |
29.11.2012, 3:37
Сообщение
#1
|
Студент Группа: Участник Сообщений: 23 Регистрация: 6.5.2012 Пользователь №: 3365 Спасибо сказали: 0 раз(а) Репутация: 0 |
Попробовал собрать проект "OGLPyramid" к 23 главе книги: "Макс Шлее Qt4.5.Профессиональноепрограммирование на C++ (2010)". Проект с использованием OpenGL. Собираю в Студии 2010. Другие проекты делал в Студии без особых проблем. При компиляции компоновщик выдаёт ошибки типа:
Цитата 1>OGLPyramid.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glShadeModel@4 в функции "protected: virtual void __thiscall OGLPyramid::initializeGL(void)" , т.е. ошибки по поводу функций вида: glShadeModel(), glEnable(), glNewList(), glBegin() и пр. Прототипы этих функций Студия показывает в GL.h. Есть предположение, что компоновщик не находит реализаций. В свойствах проекта: Дополнительные каталоги включаемых файлов: C:\Ot\4.81\include\QtOpenGL, Дополнительные зависимости: QtOpenGL4.lib, QtOpenGLd4.lib. Подскажите, пожалуйста, что и где ещё нужно подключить, или чего не хватает.(?initializeGL@OGLPyramid@@MAEXXZ)1>OGLPyramid.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnable@4 в функции "protected: virtual void __thiscall OGLPyramid::initializeGL(void)" (?initializeGL@OGLPyramid@@MAEXXZ) main.cpp
OGLPyramid.h
OGLPyramid.cpp
|
|
|
alsav22 |
29.11.2012, 18:57
Сообщение
#2
|
Студент Группа: Участник Сообщений: 23 Регистрация: 6.5.2012 Пользователь №: 3365 Спасибо сказали: 0 раз(а) Репутация: 0 |
Осталась одна заморочка. Делаю в Студии 2010 Express. В Release всё нормально. В Debug компилируется без ошибок. При запуске так. Если в Свойствах проекта - Компоновщик - Ввод -Дополнительные зависимости прописана библиотека QtOpenGL4.lib, то на консоли мелькает сообщение: "QWidget: Must construct a QApplication before a QPaintDevice" и программа закрывается без вывода окна. В инете по этому поводу пишут, что это происходит из-за несоответствия режима компиляции и библиотеки. Если прописать там: QtOpenGLd4.lib, то при запуске выскакивает: "Необработанное исключение....Нарушение прав доступа при чтении".
Остальные библиотеки там прописаны с d. В Release без d. Если делаю в Студии 2010 Ultimate, то там всё нормально. В ней можно создавать проекты Qt и в свойствах проекта всё автоматом прописывается. Посмотрел как там это библиотека прописана. Там всё как надо: для Debug с d, для Release - без. Почему в Express это исключение выскакивает непонятно. Через qmake всё нормально собирается. Этоа ошибка появляется при запуске именно в Студии. Если запускать непосредственно .exe файл, то всё нормально. Вопрос снимаю. Была какая-то заморочка с проектом. Создал по новой, и всё нормально заработало. |
|
|
Текстовая версия | Сейчас: 26.11.2024, 10:16 |