Compiling Qt 4.8.3 from source with OpenGL support on CentOS

Trying to compile Qt 4.8.4 with opengl support for installing Visit. I run

./configure -opengl -verbose

The console gives me:

OpenGL auto-detection... ()
g++ -c -m64 -pipe -O2 -Wall -W  -I../../../mkspecs/linux-g++-64 -I. -I/usr/include/GL -I/usr/X11R6/include -o opengl.o opengl.cpp
g++ -m64 -Wl,-O1 -o opengl opengl.o    -L/usr/lib64/X11 -L/usr/lib64 -lGL -lXext -lX11 -lm
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
gmake: *** [opengl] Error 1
OpenGL disabled.
OpenGL ES 2.x auto-detection... ()
g++ -c -m64 -pipe -O2 -Wall -W  -I../../../mkspecs/linux-g++-64 -I. -I/usr/X11R6/include -o opengles2.o opengles2.cpp
opengles2.cpp:45:25: error: GLES2/gl2.h: No such file or directory
opengles2.cpp: In function ‘int main(int, char**)’:
opengles2.cpp:50: error: ‘GLfloat’ was not declared in this scope
opengles2.cpp:50: error: ‘glUniform1f’ was not declared in this scope
opengles2.cpp:51: error: ‘GL_COLOR_BUFFER_BIT’ was not declared in this scope
opengles2.cpp:51: error: ‘glClear’ was not declared in this scope
gmake: *** [opengles2.o] Error 1
OpenGL ES 2.x disabled.
OpenGL ES 1.x auto-detection... ()
g++ -c -m64 -pipe -O2 -Wall -W  -I../../../mkspecs/linux-g++-64 -I. -I/usr/X11R6/include -o opengles1.o opengles1.cpp
opengles1.cpp:45:23: error: GLES/gl.h: No such file or directory
opengles1.cpp: In function ‘int main(int, char**)’:
opengles1.cpp:50: error: ‘GLfloat’ was not declared in this scope
opengles1.cpp:50: error: expected ‘;’ before ‘a’
opengles1.cpp:51: error: ‘a’ was not declared in this scope
opengles1.cpp:51: error: ‘glColor4f’ was not declared in this scope
opengles1.cpp:52: error: ‘GL_COLOR_BUFFER_BIT’ was not declared in this scope
opengles1.cpp:52: error: ‘glClear’ was not declared in this scope
gmake: *** [opengles1.o] Error 1
OpenGL ES 1.x disabled.
All the OpenGL functionality tests failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in
 /home/.../Downloads/qt-everywhere-opensource-src-4.8.3/mkspecs/linux-g++-64.

So, i look inside /mkspecs/linux-g++-64, there's only one file, qmake.conf

#
# qmake configuration for linux-g++
#
# Written for GNU/Linux platforms that have both lib and lib64 directories,
# like the AMD Opteron.
#

MAKEFILE_GENERATOR      = UNIX
TARGET_PLATFORM         = unix
TEMPLATE                = app
CONFIG                  += qt warn_on release incremental link_prl gdb_dwarf_index
QT                      += core gui
QMAKE_INCREMENTAL_STYLE = sublib

QMAKE_CFLAGS            = -m64
QMAKE_LFLAGS            = -m64

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)


QMAKE_LIBDIR_X11      = /usr/X11R6/lib64
QMAKE_LIBDIR_OPENGL   = /usr/X11R6/lib64

I don't have a /usr/X11R6 directory, but X_11 reports that everything is OK in the output.

I add the variables:

QMAKE_INCDIR_OPENGL   = /usr/include/GL
QMAKE_LIBDIR_OPENGL   = /usr/lib64
QMAKE_LIBS_OPENGL     = -lGLU -lGL

Contents of /usr/include/GL:

drwxr-xr-x.  3 root root 4.0K Jun 29 14:26 .
drwxr-xr-x. 46 root root  12K Jun 29 16:07 ..
-rw-r--r--.  1 root root 7.7K Nov 12  2010 freeglut_ext.h
-rw-r--r--.  1 root root  681 Nov 12  2010 freeglut.h
-rw-r--r--.  1 root root  26K Nov 12  2010 freeglut_std.h
-rw-r--r--.  1 root root 710K Dec 13  2013 glext.h
-rw-r--r--.  1 root root  83K Dec 13  2013 gl.h
-rw-r--r--.  1 root root 126K Dec 13  2013 gl_mangle.h
-rw-r--r--.  1 root root  17K Dec 13  2013 glu.h
-rw-r--r--.  1 root root 3.3K Dec 13  2013 glu_mangle.h
-rw-r--r--.  1 root root  639 Nov 12  2010 glut.h
-rw-r--r--.  1 root root  44K Dec 13  2013 glxext.h
-rw-r--r--.  1 root root  17K Dec 13  2013 glx.h
-rw-r--r--.  1 root root 4.6K Feb 23  2013 glxint.h
-rw-r--r--.  1 root root 3.4K Dec 13  2013 glx_mangle.h
-rw-r--r--.  1 root root 2.1K Feb 23  2013 glxmd.h
-rw-r--r--.  1 root root  80K Feb 23  2013 glxproto.h
-rw-r--r--.  1 root root  12K Feb 23  2013 glxtokens.h
drwxr-xr-x.  2 root root 4.0K Jun 25 17:20 internal

contents of /usr/lib64

lrwxrwxrwx.   1 root root    15 Jun 25 17:20 libGLU.so -> libGLU.so.1.3.1
lrwxrwxrwx.   1 root root    15 Jun 25 15:59 libGLU.so.1 -> libGLU.so.1.3.1
-rwxr-xr-x.   1 root root  514K Dec 13  2013 libGLU.so.1.3.1
-rw-r--r--.   1 root root   656 Jun 25 16:20 libGL.la
lrwxrwxrwx.   1 root root    14 Jun 25 17:20 libGL.so -> libGL.so.1.2.0
lrwxrwxrwx.   1 root root    15 Jun 25 16:20 libGL.so.1 -> libGL.so.331.79
-rwxr-xr-x.   1 root root  1.2M Jun 25 16:20 libGL.so.331.79
lrwxrwxrwx.   1 root root    15 Jun 25 17:20 libGLU.so -> libGLU.so.1.3.1
lrwxrwxrwx.   1 root root    15 Jun 25 15:59 libGLU.so.1 -> libGLU.so.1.3.1
-rwxr-xr-x.   1 root root  514K Dec 13  2013 libGLU.so.1.3.1

./configure -opengl -verbose gives the same result

in addition

glxgears

works fine.

What am I doing wrong?

Answers


I guess you might install mesa driver that provides libGL.so.1.2.0 and changes the libGL.so symbolic link.

libGL.so -> libGL.so.1.2.0
libGL.so.1 -> libGL.so.331.79
libGL.so.331.79

In /usr/lib64,

rm libGL.so
ln -s libGL.so.1 libGL.so

will give you

libGL.so -> libGL.so.1 -> libGL.so.331.79

Need Your Help

why does jquery $(window).load() only work on page reload and not on first visit in ie8?

jquery html internet-explorer internet-explorer-8

When I load my page in ie8 my $(window).load function does not fire. If I then refresh the page it fires.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.