[GRASS-user] openGL library name

I think I accidentally allowed my OS to install a proprietary NVIDIA driver and as a result, some of my openGL libraries appear to be missing.

At any rate, running configure for GRASS 6.5 crashes when it reaches the openGL section:

<snip>
checking for location of OpenGL includes... /usr/include/GL
checking for GL/gl.h... yes
checking for GL/glu.h... yes
checking for location of OpenGL library...
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
configure: error: *** Unable to locate OpenGL library.

What are the names of packages that contain the required libraries?

Thanks,

~ Eric.

I also use the proprietary NVIDIA driver, no problem.
Please check config.log for the real error.

Markus

Here's the relevant output from config.log:

configure:11398: checking for glBegin in -lGL
configure:11415: gcc -o conftest -g -O2 -Wl,--export-dynamic -L/usr/lib64 conftest.c -lGL -lSM -lICE -lX11 -lm 1>&5
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
configure: failed program was:
#line 11404 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply. */
char glBegin();

int main() {
glBegin()
; return 0; }
configure:11434: checking for glBegin in -lGL
configure:11451: gcc -o conftest -g -O2 -Wl,--export-dynamic -L/usr/lib64 conftest.c -lGL -lSM -lICE -lX11 -lm -lXext 1>&5
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
configure: failed program was:
#line 11440 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply. */
char glBegin();

int main() {
glBegin()
; return 0; }
configure:11470: checking for glBegin in -lGL
configure:11487: gcc -o conftest -g -O2 -Wl,--export-dynamic -L/usr/lib64 conftest.c -lGL -lSM -lICE -lX11 -lm -lpthread 1>&5
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
configure: failed program was:
#line 11476 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply. */
char glBegin();

int main() {
glBegin()
; return 0; }
configure:11506: checking for glBegin in -lGL
configure:11523: gcc -o conftest -g -O2 -Wl,--export-dynamic -L/usr/lib64 conftest.c -lGL -lSM -lICE -lX11 -lm -lpthread -lXext 1>&5
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
configure: failed program was:
#line 11512 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply. */
char glBegin();

int main() {
glBegin()
; return 0; }

~ Eric.

Hi,

2009/4/1 Patton, Eric <Eric.Patton@nrcan-rncan.gc.ca>:

[...]

configure:11398: checking for glBegin in -lGL
configure:11415: gcc -o conftest -g -O2 -Wl,--export-dynamic -L/usr/lib64 conftest.c -lGL -lSM -lICE -lX11 -lm 1>&5

I guess

sudo ldconfig

will not help (?).

Martin

--
Martin Landa <landa.martin gmail.com> * http://gama.fsv.cvut.cz/~landa

configure:11398: checking for glBegin in -lGL
configure:11415: gcc -o conftest -g -O2 -Wl,--export-dynamic -L/usr/lib64 conftest.c -lGL -lSM -lICE -lX11 -lm 1>&5

I guess

sudo ldconfig

will not help (?).

Martin

Hm , no that doesn't seem to make any difference. I get the same error as before.

~ Eric.

Eric:

I think I accidentally allowed my OS to install a proprietary NVIDIA
driver and as a result, some of my openGL libraries appear to be
missing.
At any rate, running configure for GRASS 6.5 crashes when it reaches
the openGL section:

<snip>
checking for location of OpenGL includes... /usr/include/GL
checking for GL/gl.h... yes
checking for GL/glu.h... yes
checking for location of OpenGL library...
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
configure: error: *** Unable to locate OpenGL library.

What are the names of packages that contain the required libraries?

Not sure. But I work with NVidia and have the following under
/usr/include/GL$ ls -l

-rw-r--r-- 1 root root 376506 2009-01-06 22:13 glext.h
-rw-r--r-- 1 root root 72949 2009-01-06 22:13 gl.h
-rw-r--r-- 1 root root 17163 2008-10-22 05:58 glu.h
-rw-r--r-- 1 root root 3315 2008-10-22 05:58 glu_mangle.h
-rw-r--r-- 1 root root 33751 2009-01-06 22:13 glxext.h
-rw-r--r-- 1 root root 14021 2009-01-06 22:13 glx.h

Do you have all of those installed as well?
Nikos

Patton, Eric wrote:

I think I accidentally allowed my OS to install a proprietary NVIDIA
driver and as a result, some of my openGL libraries appear to be
missing.

At any rate, running configure for GRASS 6.5 crashes when it reaches the
openGL section:

<snip>
checking for location of OpenGL includes... /usr/include/GL
checking for GL/gl.h... yes
checking for GL/glu.h... yes
checking for location of OpenGL library...
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
checking for glBegin in -lGL... no
configure: error: *** Unable to locate OpenGL library.

What are the names of packages that contain the required libraries?

Package names are distribution-specific, but it's common to use a -dev
or -devel suffix for packages which are only required when compiling.

It's entirely possible that the nVidia OpenGL package doesn't have a
corresponding development package. In which case, you probably need to
make the symlink manually, e.g.:

  ln -s libGL.so.1.2 /usr/lib/libGL.so

Essentially libGL.so must exist in one of the system library
directories (e.g. /usr/lib) and must point (directly or indirectly) at
the actual OpenGL library (which will normally have a version number
after the ".so").

--
Glynn Clements <glynn@gclements.plus.com>

Not sure. But I work with NVidia and have the following under
/usr/include/GL$ ls -l

-rw-r--r-- 1 root root 376506 2009-01-06 22:13 glext.h
-rw-r--r-- 1 root root 72949 2009-01-06 22:13 gl.h
-rw-r--r-- 1 root root 17163 2008-10-22 05:58 glu.h
-rw-r--r-- 1 root root 3315 2008-10-22 05:58 glu_mangle.h
-rw-r--r-- 1 root root 33751 2009-01-06 22:13 glxext.h
-rw-r--r-- 1 root root 14021 2009-01-06 22:13 glx.h

Do you have all of those installed as well?
Nikos

Yep, looks good:

cd /usr/include/GL
GL> ls -l
total 692
-rw-r--r-- 1 root root 5028 2008-05-10 09:20 freeglut_ext.h
-rw-r--r-- 1 root root 681 2008-05-10 09:20 freeglut.h
-rw-r--r-- 1 root root 23684 2008-05-10 09:20 freeglut_std.h
-rw-r--r-- 1 root root 388018 2008-10-22 00:51 glext.h
-rw-r--r-- 1 root root 90754 2008-10-22 00:51 gl.h
-rw-r--r-- 1 root root 83950 2008-10-22 00:51 gl_mangle.h
-rw-r--r-- 1 root root 17163 2008-10-22 00:58 glu.h
-rw-r--r-- 1 root root 3315 2008-10-22 00:58 glu_mangle.h
-rw-r--r-- 1 root root 639 2008-05-10 09:20 glut.h
-rw-r--r-- 1 root root 33458 2008-10-22 00:51 glxext.h
-rw-r--r-- 1 root root 15234 2008-10-22 00:51 glx.h
-rw-r--r-- 1 root root 3412 2008-10-22 00:51 glx_mangle.h
drwxr-xr-x 2 root root 4096 2008-10-29 10:12 internal

All of your files plus some mangle headers to boot.

~ Eric.

It's entirely possible that the nVidia OpenGL package doesn't have a
corresponding development package. In which case, you probably need to
make the symlink manually, e.g.:

ln -s libGL.so.1.2 /usr/lib/libGL.so

Essentially libGL.so must exist in one of the system library
directories (e.g. /usr/lib) and must point (directly or indirectly) at
the actual OpenGL library (which will normally have a version number
after the ".so").

Thanks, Glynn! That was exactly what was wrong.

~ Eric.