Russian Qt Forum

Qt => Вопросы новичков => Тема начата: shults от Апрель 15, 2012, 11:43



Название: подключение glut к проекту
Отправлено: shults от Апрель 15, 2012, 11:43
Граждане прошу у Вас помощи.
Возникла проблема с подключением glut к проекту.
я совсем совсем  новичек, сильно не пинайте.

скачал glut  с сайта  http://www.opengl.org/resources/libraries/glut/

вот содержимое файла *.pro:
TEMPLATE = app
CONFIG += console
CONFIG -= qt
SOURCES += main.cpp

win32: LIBS += -L$$PWD/C:/QtSDK/glut/ -lglut32
INCLUDEPATH += $$PWD/C:/QtSDK/glut
DEPENDPATH += $$PWD/C:/QtSDK/glut


содержимое файла main (пример из инета):
#include <glut.h>
void display();
int main(int argc, char **argv)
{
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
      glutInitWindowSize(240, 240);
      glutInitWindowPosition(100, 740);
      glutCreateWindow("Test");
      glClearColor(1.0, 1.0, 1.0, 1.0);
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
      glutDisplayFunc(display);
      glutMainLoop();
    //return 0;
}

void display()
{
  glClear(GL_COLOR_BUFFER_BIT);
  glBegin(GL_LINES);
  glColor3f(1.0, 0.0, 0.0);
  glVertex2f(0.25, 0.25);
  glVertex2f(0.75, 0.75);
  glColor3f(0.0, 1.0, 0.0);
  glVertex2f(0.75, 0.25);
  glVertex2f(0.25, 0.75);
  glColor3f(0.0, 0.0, 1.0);
  glVertex2f(0.50, 0.25);
  glVertex2f(0.50, 0.75);
  glEnd();
  glFlush();
}

А вот собственно ошибки.
11:39:35: Выполняется сборка проекта cppProj...
11:39:35: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe» clean
c:\qtsdk\desktop\qt\4.8.0\mingw\bin\qmake.exe -spec c:\QtSDK\Desktop\Qt\4.8.0\mingw\mkspecs\win32-g++ -o Makefile ..\..\cppProj\Graph\Graph.pro
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug clean
mingw32-make.exe[1]: Entering directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
del debug\main.o
mingw32-make.exe[1]: Leaving directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Release clean
mingw32-make.exe[1]: Entering directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
del release\main.o
mingw32-make.exe[1]: Leaving directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
ЌҐ г¤ Ґвбп ­ ©вЁ D:\mycppProj\cppProj-build-desktop-_______\Graph\release\main.o
11:39:36: Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился нормально.
11:39:36: Настройки не изменились, этап qmake пропускается.
11:39:36: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe»
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug
mingw32-make.exe[1]: Entering directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -I"d:\mycppProj\cppProj\Graph\C:\QtSDK\glut" -I"..\..\cppProj\Graph" -I"." -I"c:\QtSDK\Desktop\Qt\4.8.0\mingw\mkspecs\win32-g++" -o debug\main.o ..\..\cppProj\Graph\main.cpp
In file included from ..\..\cppProj\Graph\main.cpp:2:
..\..\cppProj\Graph/glut.h:48: warning: ignoring #pragma comment
..\..\cppProj\Graph/glut.h:49: warning: ignoring #pragma comment
..\..\cppProj\Graph/glut.h:50: warning: ignoring #pragma comment
..\..\cppProj\Graph/glut.h:51: warning: ignoring #pragma comment
..\..\cppProj\Graph/glut.h:53: warning: ignoring #pragma warning
..\..\cppProj\Graph/glut.h:54: warning: ignoring #pragma warning
g++ -Wl,-subsystem,console -mthreads -o debug\Graph.exe debug/main.o  -LD:/mycppProj/cppProj/Graph/C:/QtSDK/glut/ -lglut32
mingw32-make.exe[1]: Leaving directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
debug/main.o: In function `main':
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:11: undefined reference to `glutInit'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:12: undefined reference to `glutInitDisplayMode'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:13: undefined reference to `glutInitWindowSize'
и т.д.

Помогите разобраться.


Название: Re: подключение glut к проекту
Отправлено: kambala от Апрель 15, 2012, 12:54
"$$PWD/" повытирай в .pro


Название: Re: подключение glut к проекту
Отправлено: shults от Апрель 15, 2012, 14:07
убрал "$$PWD/"

win32: LIBS +=-LC:/QtSDK/glut/ -lglut32
INCLUDEPATH +=C:/QtSDK/glut
DEPENDPATH +=C:/QtSDK/glut

ничего не изменилось, ошибки те-же


Название: Re: подключение glut к проекту
Отправлено: shults от Апрель 15, 2012, 21:25
перенес заголовочный файл glut.h в каталог include.
Ошибок стало меньше.
----------------------------------------------------------------
22:00:31: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe» clean
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug clean
mingw32-make.exe[1]: Entering directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
del debug\main.o
mingw32-make.exe[1]: Leaving directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Release clean
mingw32-make.exe[1]: Entering directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
del release\main.o
mingw32-make.exe[1]: Leaving directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
ЌҐ г¤ Ґвбп ­ ©вЁ D:\mycppProj\cppProj-build-desktop-_______\Graph\release\main.o
22:00:31: Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился нормально.
22:00:31: Настройки не изменились, этап qmake пропускается.
22:00:31: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe»
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug
mingw32-make.exe[1]: Entering directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -I"c:\QtSDK\glut" -I"..\..\cppProj\Graph" -I"." -I"c:\QtSDK\Desktop\Qt\4.8.0\mingw\mkspecs\win32-g++" -o debug\main.o ..\..\cppProj\Graph\main.cpp
g++ -Wl,-subsystem,console -mthreads -o debug\Graph.exe debug/main.o  -LC:/QtSDK/glut/ -lglut32
mingw32-make.exe[1]: Leaving directory `D:/mycppProj/cppProj-build-desktop-_______/Graph'
debug/main.o: In function `main':
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:17: undefined reference to `glClearColor@16'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:18: undefined reference to `glMatrixMode@4'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:19: undefined reference to `glLoadIdentity@0'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:20: undefined reference to `glOrtho@48'
debug/main.o: In function `Z7displayv':
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:29: undefined reference to `glClear@4'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:30: undefined reference to `glBegin@4'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:31: undefined reference to `glColor3f@12'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:32: undefined reference to `glVertex2f@8'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:33: undefined reference to `glVertex2f@8'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:34: undefined reference to `glColor3f@12'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:35: undefined reference to `glVertex2f@8'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:36: undefined reference to `glVertex2f@8'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:37: undefined reference to `glColor3f@12'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:38: undefined reference to `glVertex2f@8'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:39: undefined reference to `glVertex2f@8'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:40: undefined reference to `glEnd@0'
D:\mycppProj\cppProj-build-desktop-_______\Graph/../../cppProj/Graph/main.cpp:41: undefined reference to `glFlush@0'
collect2: ld returned 1 exit status
mingw32-make.exe[1]: *** [debug\Graph.exe] Error 1
mingw32-make.exe: *** [debug] Error 2
22:00:32: Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился с кодом 2.
Возникла ошибка при сборке проекта cppProj (цель: Desktop)
Во время выполнения сборки на этапе «Сборка»
----------------------------------------------------------------
Может не правильно разложил файлы библиотеки?


Название: Re: подключение glut к проекту
Отправлено: ecspertiza от Апрель 16, 2012, 09:25
У тебя косяк в том что либо ты не все либы подключаешь, либо не те. Щас попробую глут скачать


Название: Re: подключение glut к проекту
Отправлено: ecspertiza от Апрель 16, 2012, 09:37
Кстати, какой компилятор используешь ? Вот почитай статью https://users.cs.jmu.edu/bernstdh/web/common/help/cpp_mingw-glut-setup.php там помимо -lglut32 к проекту еще линкуют -lopengl32 -lglu32 вполне возможно что тебе их и нехватает.


Название: Re: подключение glut к проекту
Отправлено: shults от Апрель 16, 2012, 22:45
Компилятор mingw(могу ошибаться) поставился и настроился по умолчанию из комплекта Qt SDK version 1.2.1 я туда вообще не лазил.
Подключил  к main еще
#include <windows.h>
#include <GL/gl.h>
#include<GL/glu.h>

Пробывал делать как описано по Вашей ссылке.
Результат тот же.

Я так понимаю? что библиотека glut "подключается" нормально, т.к. исчезли ошибки для функции
начинающихся с glut.
Выскакивают ошибки по функциям начинающимся с gl например
undefined reference to `glClearColor@16' , (результаты компиляции как и в предыдущем сообщении),но и gl.h и glu.h тоже подключены.




Название: Re: подключение glut к проекту
Отправлено: kambala от Апрель 16, 2012, 23:52
в .pro файле допиши QT += opengl


Название: Re: подключение glut к проекту
Отправлено: shults от Апрель 17, 2012, 20:22
спасибо большое за помощь.
добавил QT += opengl
и все заработало!