• 15600阅读
  • 3回复

在编译OPENGL的时候出现问题 [复制链接]

上一主题 下一主题
离线genuisxw
 

只看楼主 倒序阅读 楼主  发表于: 2006-04-01
在编译OPENGL的时候出现问题
编译QT里面opengl的example
文件夹是 grabber
在grabber这个文件夹不变,直接编译是成功的


然后我把这个文件夹拷贝到D盘
然后在
qmake -project
qmake
make
make的时候出现一堆问题
怎么回事?
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/TmpSorce/qt/opengl/grabber'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_D
LL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
-I"C:/Qt/4.1.2/include/QtCore" -I"C:/Qt/4.1.2/include/QtGui" -I"C:/Qt/4.1.2/inc
lude" -I"." -I"C:/Qt/4.1.2/include/ActiveQt" -I"release" -I"." -I"C:/Qt/4.1.2/mk
specs/win32-g++" -o release\glwidget.o glwidget.cpp
glwidget.cpp:25:20: QtOpenGL: No such file or directory
In file included from glwidget.cpp:29:
glwidget.h:27:21: QGLWidget: No such file or directory
In file included from glwidget.cpp:29:
glwidget.h:30: error: invalid use of undefined type `struct QGLWidget'
C:/Qt/4.1.2/include/QtGui/../../src/gui/image/qpixmap.h:205: error: forward decl
aration of `struct QGLWidget'
glwidget.h:62: error: `GLuint' does not name a type
glwidget.h:65: error: variable or field `drawGear' declared void
glwidget.h:65: error: expected `;' before '(' token
glwidget.h:69: error: `GLuint' does not name a type
glwidget.h:70: error: `GLuint' does not name a type
glwidget.h:71: error: `GLuint' does not name a type
glwidget.h:30: warning: `class GLWidget' has virtual functions but non-virtual d
estructor
glwidget.cpp: In constructor `GLWidget::GLWidget(QWidget*)':
glwidget.cpp:32: error: type `struct QGLWidget' is not a direct base of `GLWidge
t'
glwidget.cpp:34: error: `gear1' undeclared (first use this function)
glwidget.cpp:34: error: (Each undeclared identifier is reported only once for ea
ch function it appears in.)
glwidget.cpp:35: error: `gear2' undeclared (first use this function)
glwidget.cpp:36: error: `gear3' undeclared (first use this function)
glwidget.cpp:42: error: no matching function for call to `QTimer::QTimer(GLWidge
t* const)'
C:/Qt/4.1.2/include/QtCore/../../src/corelib/kernel/qtimer.h:75: note: candidate
s are: QTimer::QTimer(const QTimer&)
C:/Qt/4.1.2/include/QtCore/../../src/corelib/kernel/qtimer.h:40: note:
    QTimer::QTimer(QObject*)
glwidget.cpp:43: error: `connect' undeclared (first use this function)
glwidget.cpp: In destructor `GLWidget::~GLWidget()':
glwidget.cpp:49: error: `makeCurrent' undeclared (first use this function)
glwidget.cpp:50: error: `gear1' undeclared (first use this function)
glwidget.cpp:50: error: `glDeleteLists' undeclared (first use this function)
glwidget.cpp:51: error: `gear2' undeclared (first use this function)
glwidget.cpp:52: error: `gear3' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::setXRotation(int)':
glwidget.cpp:61: error: `updateGL' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::setYRotation(int)':
glwidget.cpp:71: error: `updateGL' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::setZRotation(int)':
glwidget.cpp:81: error: `updateGL' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::initializeGL()':
glwidget.cpp:87: error: `GLfloat' does not name a type
glwidget.cpp:88: error: `GLfloat' does not name a type
glwidget.cpp:89: error: `GLfloat' does not name a type
glwidget.cpp:90: error: `GLfloat' does not name a type
glwidget.cpp:92: error: `GL_LIGHT0' undeclared (first use this function)
glwidget.cpp:92: error: `GL_POSITION' undeclared (first use this function)
glwidget.cpp:92: error: `lightPos' undeclared (first use this function)
glwidget.cpp:92: error: `glLightfv' undeclared (first use this function)
glwidget.cpp:93: error: `GL_LIGHTING' undeclared (first use this function)
glwidget.cpp:93: error: `glEnable' undeclared (first use this function)
glwidget.cpp:95: error: `GL_DEPTH_TEST' undeclared (first use this function)
glwidget.cpp:97: error: `gear1' undeclared (first use this function)
glwidget.cpp:97: error: `reflectance1' undeclared (first use this function)
glwidget.cpp:97: error: `makeGear' undeclared (first use this function)
glwidget.cpp:98: error: `gear2' undeclared (first use this function)
glwidget.cpp:98: error: `reflectance2' undeclared (first use this function)
glwidget.cpp:99: error: `gear3' undeclared (first use this function)
glwidget.cpp:99: error: `reflectance3' undeclared (first use this function)
glwidget.cpp:101: error: `GL_NORMALIZE' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::paintGL()':
glwidget.cpp:106: error: `GL_COLOR_BUFFER_BIT' undeclared (first use this functi
on)
glwidget.cpp:106: error: `GL_DEPTH_BUFFER_BIT' undeclared (first use this functi
on)
glwidget.cpp:106: error: `glClear' undeclared (first use this function)
glwidget.cpp:108: error: `glPushMatrix' undeclared (first use this function)
glwidget.cpp:109: error: `glRotated' undeclared (first use this function)
glwidget.cpp:113: error: `gear1' undeclared (first use this function)
glwidget.cpp:113: error: `drawGear' undeclared (first use this function)
glwidget.cpp:114: error: `gear2' undeclared (first use this function)
glwidget.cpp:117: error: `gear3' undeclared (first use this function)
glwidget.cpp:119: error: `glPopMatrix' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::resizeGL(int, int)':
glwidget.cpp:125: error: `glViewport' undeclared (first use this function)
glwidget.cpp:127: error: `GL_PROJECTION' undeclared (first use this function)
glwidget.cpp:127: error: `glMatrixMode' undeclared (first use this function)
glwidget.cpp:128: error: `glLoadIdentity' undeclared (first use this function)
glwidget.cpp:129: error: `glFrustum' undeclared (first use this function)
glwidget.cpp:130: error: `GL_MODELVIEW' undeclared (first use this function)
glwidget.cpp:132: error: `glTranslated' undeclared (first use this function)
glwidget.cpp: In member function `void GLWidget::advanceGears()':
glwidget.cpp:158: error: `updateGL' undeclared (first use this function)
glwidget.cpp: At global scope:
glwidget.cpp:161: error: `GLuint' does not name a type
glwidget.cpp:249: error: variable or field `drawGear' declared void
glwidget.cpp:249: error: `int GLWidget::drawGear' is not a static member of `cla
ss GLWidget'
glwidget.cpp:249: error: `GLuint' was not declared in this scope
glwidget.cpp:249: error: `GLdouble' was not declared in this scope
glwidget.cpp:249: error: `GLdouble' was not declared in this scope
glwidget.cpp:249: error: `GLdouble' was not declared in this scope
glwidget.cpp:250: error: `GLdouble' was not declared in this scope
glwidget.cpp:251: error: initializer expression list treated as compound express
ion
glwidget.cpp:251: error: expected `,' or `;' before '{' token
mingw32-make[1]: *** [release\glwidget.o] Error 1
mingw32-make[1]: Leaving directory `D:/TmpSorce/qt/opengl/grabber'
mingw32-make: *** [release] Error 2
离线undoder
只看该作者 1楼 发表于: 2009-03-17
我也有这样的问题.而且只在OPENGL的例子中出现.
LZ解决了吗?
离线浪漫天使
只看该作者 2楼 发表于: 2009-03-17
在pro里面加入一行
QT += opengl
看看。

注意 改了pro之后就不要qmake -project了,这样会把你改动的覆盖掉了
其实问题就出在你qmake -project,这样你把原有的pro改写了。
不信你比较下你新的pro和原来的pro文件。
离线trice
只看该作者 3楼 发表于: 2009-04-09
上楼的方法我试过了,我在.pro的最后一行加了这句,可是还是不行啊。
快速回复
限100 字节
 
上一个 下一个