help
help > RE: error C3861:"gluErrorString"
Oct 30, 2012 01:10 PM | Michael Rickmann
RE: error C3861:"gluErrorString"
Surprisingly I ran into similar errors under Ubuntu 12.04 actually
the Linux Mint variant of it. I used the Ubuntu setup, i.e Qt 4.8.1
from the repositories (qt4-dev, qt4-demos, qt4-dev-tools) and
gcc/g++ 4.6.3.
After adjusting v3d_external/v3d_main/v3d/v3d_essential.pro for a 32-bit build (QTINST_SHARED_FOLDER = /usr/lib/qt4/demos/shared) the real errors started:
1st:
g++ -c -pipe -DWITH_NONAMESPACES -DWITH_PURE_VIRTUAL -O2 -D_REENTRANT -w -DQT_WEBKIT -D__NAWEBSERVICE__ -D_ALLOW_WORKMODE_MENU_ -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -I../common_lib/include -I/usr/bin/../demos/shared -I/usr/lib/qt4/demos/shared -I../common_lib/include -I/usr/X11R6/include -I. -I. -o v3d_plugin_loader.o ../plugin_loader/v3d_plugin_loader.cpp
In file included from ../plugin_loader/../3drenderer/v3dr_glwidget.h:42:0,
from ../plugin_loader/v3d_plugin_loader.cpp:43:
../plugin_loader/../3drenderer/renderer.h: In function 'int CheckGLError_print(const char*, int)':
../plugin_loader/../3drenderer/renderer.h:496:47: error: 'gluErrorString' was not declared in this scope
make: *** [v3d_plugin_loader.o] Error 1
Fix: Make the includes in v3d_external/v3d_main/3drenderer/renderer.h read
#include "v3dr_common.h"
#include
2nd:
g++ -c -pipe -DWITH_NONAMESPACES -DWITH_PURE_VIRTUAL -O2 -D_REENTRANT -w -DQT_WEBKIT -D__NAWEBSERVICE__ -D_ALLOW_WORKMODE_MENU_ -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -I../common_lib/include -I/usr/bin/../demos/shared -I/usr/lib/qt4/demos/shared -I../common_lib/include -I/usr/X11R6/include -I. -I. -o renderer_gl2.o ../3drenderer/renderer_gl2.cpp
In file included from ../3drenderer/renderer_gl2.cpp:41:0:
../3drenderer/glsl_r.cpp: In constructor 'cwc::glShader::glShader()':
../3drenderer/glsl_r.cpp:260:39: error: 'glCreateProgram' was not declared in this scope
..... more
In file included from ../3drenderer/renderer_gl2.cpp:41:0:
../3drenderer/glsl_r.cpp:364:32: error: 'glLinkProgram' was not declared in this scope
../3drenderer/glsl_r.cpp:366:58: error: 'glGetProgramiv' was not declared in this scope
..... many more
make: *** [renderer_gl2.o] Error 1
Fix: In v3d_external/v3d_main/3drenderer/v3dr_common.h avoid including QtOpenGL:
//#include
#include
//#include
This change seems related to an incompatibility between glew.h and QtOpenGL which includes qglfunctions.h in Qt 4.8 .
3rd, linker, to be expected:
g++ -Wl,-O1 -o vaa3d mg_utilities.o mg_image_lib.o stackutil.o v3d_message.o basic_surf_objs.o basic_4dimage.o basic_4dimage_create.o
......... -lpthread -lQtSvg -lQtXml -lQtOpenGL -lQtGui -lQtNetwork -lQtCore -lGL
v3dr_glwidget.o: In function `V3dR_GLWidget::lookAlong(float, float, float)':
v3dr_glwidget.cpp:(.text+0x4af3): undefined reference to `gluLookAt'
renderer.o: In function `Renderer::paint()':
renderer.cpp:(.text+0x6d6): undefined reference to `gluNewQuadric'
....... many more undefined all starting with glu .
Fix: Add -lGLU to v3d_external/v3d_main/v3d/v3d_essential.pro:
unix:LIBS += -L../common_lib/src_packages/mylib_tiff -lmylib
# check Qt version > 4.8, e.g. Ubuntu 12.04 needs it
contains(QT_VERSION, ^4\\.[8-9]\\..*) {
unix:LIBS += -lGLU
}
Above changes were sufficient to build Vaa3D. I agree, that these errors were were GLU header related. Could they also be Qt >= 4.8 related?
Regards
Michael
After adjusting v3d_external/v3d_main/v3d/v3d_essential.pro for a 32-bit build (QTINST_SHARED_FOLDER = /usr/lib/qt4/demos/shared) the real errors started:
1st:
g++ -c -pipe -DWITH_NONAMESPACES -DWITH_PURE_VIRTUAL -O2 -D_REENTRANT -w -DQT_WEBKIT -D__NAWEBSERVICE__ -D_ALLOW_WORKMODE_MENU_ -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -I../common_lib/include -I/usr/bin/../demos/shared -I/usr/lib/qt4/demos/shared -I../common_lib/include -I/usr/X11R6/include -I. -I. -o v3d_plugin_loader.o ../plugin_loader/v3d_plugin_loader.cpp
In file included from ../plugin_loader/../3drenderer/v3dr_glwidget.h:42:0,
from ../plugin_loader/v3d_plugin_loader.cpp:43:
../plugin_loader/../3drenderer/renderer.h: In function 'int CheckGLError_print(const char*, int)':
../plugin_loader/../3drenderer/renderer.h:496:47: error: 'gluErrorString' was not declared in this scope
make: *** [v3d_plugin_loader.o] Error 1
Fix: Make the includes in v3d_external/v3d_main/3drenderer/renderer.h read
#include "v3dr_common.h"
#include
2nd:
g++ -c -pipe -DWITH_NONAMESPACES -DWITH_PURE_VIRTUAL -O2 -D_REENTRANT -w -DQT_WEBKIT -D__NAWEBSERVICE__ -D_ALLOW_WORKMODE_MENU_ -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -I../common_lib/include -I/usr/bin/../demos/shared -I/usr/lib/qt4/demos/shared -I../common_lib/include -I/usr/X11R6/include -I. -I. -o renderer_gl2.o ../3drenderer/renderer_gl2.cpp
In file included from ../3drenderer/renderer_gl2.cpp:41:0:
../3drenderer/glsl_r.cpp: In constructor 'cwc::glShader::glShader()':
../3drenderer/glsl_r.cpp:260:39: error: 'glCreateProgram' was not declared in this scope
..... more
In file included from ../3drenderer/renderer_gl2.cpp:41:0:
../3drenderer/glsl_r.cpp:364:32: error: 'glLinkProgram' was not declared in this scope
../3drenderer/glsl_r.cpp:366:58: error: 'glGetProgramiv' was not declared in this scope
..... many more
make: *** [renderer_gl2.o] Error 1
Fix: In v3d_external/v3d_main/3drenderer/v3dr_common.h avoid including QtOpenGL:
//#include
#include
//#include
This change seems related to an incompatibility between glew.h and QtOpenGL which includes qglfunctions.h in Qt 4.8 .
3rd, linker, to be expected:
g++ -Wl,-O1 -o vaa3d mg_utilities.o mg_image_lib.o stackutil.o v3d_message.o basic_surf_objs.o basic_4dimage.o basic_4dimage_create.o
......... -lpthread -lQtSvg -lQtXml -lQtOpenGL -lQtGui -lQtNetwork -lQtCore -lGL
v3dr_glwidget.o: In function `V3dR_GLWidget::lookAlong(float, float, float)':
v3dr_glwidget.cpp:(.text+0x4af3): undefined reference to `gluLookAt'
renderer.o: In function `Renderer::paint()':
renderer.cpp:(.text+0x6d6): undefined reference to `gluNewQuadric'
....... many more undefined all starting with glu .
Fix: Add -lGLU to v3d_external/v3d_main/v3d/v3d_essential.pro:
unix:LIBS += -L../common_lib/src_packages/mylib_tiff -lmylib
# check Qt version > 4.8, e.g. Ubuntu 12.04 needs it
contains(QT_VERSION, ^4\\.[8-9]\\..*) {
unix:LIBS += -lGLU
}
Above changes were sufficient to build Vaa3D. I agree, that these errors were were GLU header related. Could they also be Qt >= 4.8 related?
Regards
Michael
Threaded View
| Title | Author | Date |
|---|---|---|
| Zhang Chuanting | Oct 9, 2012 | |
| Jianlong Zhou | Oct 10, 2012 | |
| Michael Rickmann | Oct 30, 2012 | |
| Hanchuan Peng | Oct 30, 2012 | |
| Hanchuan Peng | Jan 25, 2013 | |
| Hanchuan Peng | Jan 26, 2013 | |
| Hanchuan Peng | Feb 28, 2013 | |
