2

I'm trying to compile a sample from a project, the following code is the makefile:

CC = g++
ifeq ($(shell sw_vers 2>/dev/null | grep Mac | awk '{ print $$2}'),Mac)
    CFLAGS = -g -DGL_GLEXT_PROTOTYPES -I./include/ -I/usr/X11/include -DOSX
    LDFLAGS = -framework GLUT -framework OpenGL -L./lib/mac/ \
        -L"/System/Library/Frameworks/OpenGL.framework/Libraries" \
        -lGL -lGLU -lm -lstdc++ -lGLEW -lfreeimage 
else
    CFLAGS = -g -DGL_GLEXT_PROTOTYPES -I./include/ -I/usr/X11R6/include -I/sw/include \
                     -I/usr/sww/include -I/usr/sww/pkg/Mesa/include
    LDFLAGS = -L./lib/nix -L/usr/X11R6/lib -L/sw/lib -L/usr/sww/lib \
                        -L/usr/sww/bin -L/usr/sww/pkg/Mesa/lib -lglut -lGLU -lGL -lX11 -lGLEW -lfreeimage
endif

RM = /bin/rm -f 

all: mytest3
mytest3: mytest3.o shaders.o shaders.h geometry3.h
    $(CC) $(CFLAGS) -o mytest3 shaders.o mytest3.o $(INCFLAGS) $(LDFLAGS) 
mytest3.o: mytest3.cpp shaders.h geometry3.h
    $(CC) $(CFLAGS) $(INCFLAGS) -c mytest3.cpp
shaders.o: shaders.cpp
    $(CC) $(CFLAGS) $(INCFLAGS) -c shaders.cpp
clean: 
    $(RM) *.o mytest3 *.png

So I tried: "make" and i got:

$ make
g++ -g -DGL_GLEXT_PROTOTYPES -I./include/ -I/usr/X11R6/include -I/sw/include -I/usr/sww/include -I/usr/sww/pkg/Mesa/include -o mytest3 shaders.o mytest3.o  -L./lib/nix -L/usr/X11R6/lib -L/sw/lib -L/usr/sww/lib -L/usr/sww/bin -L/usr/sww/pkg/Mesa/lib -lglut -lGLU -lGL -lX11 -lGLEW -lfreeimage                                                                                                                                                             
/usr/bin/ld: error: no se puede abrir /usr/lib/gcc/x86_64-linux-gnu/4.4.7/../../../x86_64-linux-gnu/libGL.so: No existe el archivo o el directorio                                                                              
shaders.cpp:37: error: undefined reference to 'glGetProgramiv'                                                                                                                                                                  
shaders.cpp:39: error: undefined reference to 'glGetProgramInfoLog'                                                                                                                                                             
shaders.cpp:46: error: undefined reference to 'glGetShaderiv'                                                                                                                                                                   
shaders.cpp:48: error: undefined reference to 'glGetShaderInfoLog'                                                                                                                                                              
shaders.cpp:57: error: undefined reference to 'glCreateShader'                                                                                                                                                                  
shaders.cpp:63: error: undefined reference to 'glShaderSource'                                                                                                                                                                  
shaders.cpp:64: error: undefined reference to 'glCompileShader'                                                                                                                                                                 
shaders.cpp:65: error: undefined reference to 'glGetShaderiv'                                                                                                                                                                   
shaders.cpp:75: error: undefined reference to 'glCreateProgram'                                                                                                                                                                 
shaders.cpp:77: error: undefined reference to 'glAttachShader'                                                                                                                                                                  
shaders.cpp:78: error: undefined reference to 'glAttachShader'                                                                                                                                                                  
shaders.cpp:79: error: undefined reference to 'glLinkProgram'                                                                                                                                                                   
shaders.cpp:80: error: undefined reference to 'glGetProgramiv'                                                                                                                                                                  
shaders.cpp:81: error: undefined reference to 'glUseProgram'                                                                                                                                                                    
geometry3.h:72: error: undefined reference to 'glBindBuffer'                                                                                                                                                                    
geometry3.h:73: error: undefined reference to 'glBufferData'                                                                                                                                                                    
geometry3.h:74: error: undefined reference to 'glVertexPointer'                                                                                                                                                                 
geometry3.h:75: error: undefined reference to 'glEnableClientState'                                                                                                                                                             
geometry3.h:76: error: undefined reference to 'glBindBuffer'                                                                                                                                                                    
geometry3.h:77: error: undefined reference to 'glBufferData'
geometry3.h:78: error: undefined reference to 'glColorPointer'
geometry3.h:79: error: undefined reference to 'glEnableClientState'
geometry3.h:80: error: undefined reference to 'glBindBuffer'
geometry3.h:81: error: undefined reference to 'glBufferData'
geometry3.h:101: error: undefined reference to 'glGenTextures'
geometry3.h:103: error: undefined reference to 'glBindBuffer'
geometry3.h:104: error: undefined reference to 'glBufferData'
geometry3.h:105: error: undefined reference to 'glActiveTexture'
geometry3.h:106: error: undefined reference to 'glEnable'
geometry3.h:107: error: undefined reference to 'glTexCoordPointer'
geometry3.h:108: error: undefined reference to 'glEnableClientState'
geometry3.h:110: error: undefined reference to 'glBindTexture'
geometry3.h:112: error: undefined reference to 'glTexImage2D'
geometry3.h:113: error: undefined reference to 'glTexParameterf'
geometry3.h:114: error: undefined reference to 'glTexParameterf'
geometry3.h:115: error: undefined reference to 'glTexParameteri'
geometry3.h:116: error: undefined reference to 'glTexParameteri'
geometry3.h:120: error: undefined reference to 'glGetUniformLocation'
geometry3.h:121: error: undefined reference to 'glUniform1i'
geometry3.h:122: error: undefined reference to 'glGetUniformLocation'
geometry3.h:130: error: undefined reference to 'glVertexPointer'
geometry3.h:131: error: undefined reference to 'glEnableClientState'
geometry3.h:147: error: undefined reference to 'glColorPointer'
geometry3.h:156: error: undefined reference to 'glVertexPointer'
geometry3.h:159: error: undefined reference to 'glColorPointer'
geometry3.h:162: error: undefined reference to 'glDrawElements'
geometry3.h:170: error: undefined reference to 'glVertexPointer'
geometry3.h:175: error: undefined reference to 'glColorPointer'
geometry3.h:178: error: undefined reference to 'glActiveTexture'
geometry3.h:179: error: undefined reference to 'glEnable'
geometry3.h:180: error: undefined reference to 'glBindTexture'
geometry3.h:183: error: undefined reference to 'glTexCoordPointer'
geometry3.h:186: error: undefined reference to 'glDrawElements'
geometry3.h:199: error: undefined reference to 'glDrawElements'
mytest3.cpp:54: error: undefined reference to 'glGetFloatv'
mytest3.cpp:67: error: undefined reference to 'glClear'
mytest3.cpp:78: error: undefined reference to 'glUniform1i'
mytest3.cpp:79: error: undefined reference to 'glUniform1i'
mytest3.cpp:82: error: undefined reference to 'glUniform1i'
mytest3.cpp:89: error: undefined reference to 'glMatrixMode'
mytest3.cpp:92: error: undefined reference to 'glPushMatrix'
mytest3.cpp:93: error: undefined reference to 'glTranslatef'
mytest3.cpp:95: error: undefined reference to 'glPopMatrix'
mytest3.cpp:98: error: undefined reference to 'glPushMatrix'
mytest3.cpp:98: error: undefined reference to 'glTranslatef'
mytest3.cpp:98: error: undefined reference to 'glPopMatrix'
mytest3.cpp:101: error: undefined reference to 'glPushMatrix'
mytest3.cpp:102: error: undefined reference to 'glTranslatef'
mytest3.cpp:104: error: undefined reference to 'glPopMatrix'
mytest3.cpp:107: error: undefined reference to 'glPushMatrix'
mytest3.cpp:108: error: undefined reference to 'glTranslatef'
mytest3.cpp:110: error: undefined reference to 'glPopMatrix'
mytest3.cpp:136: error: undefined reference to 'glUniform3fv'
mytest3.cpp:137: error: undefined reference to 'glUniform4fv'
mytest3.cpp:138: error: undefined reference to 'glUniform4fv'
mytest3.cpp:139: error: undefined reference to 'glUniform4fv'
mytest3.cpp:142: error: undefined reference to 'glUniform4fv'
mytest3.cpp:145: error: undefined reference to 'glUniform1fv'
mytest3.cpp:155: error: undefined reference to 'glColor3f'
mytest3.cpp:164: error: undefined reference to 'glRotatef'
mytest3.cpp:165: error: undefined reference to 'glRotatef'
mytest3.cpp:182: error: undefined reference to 'glFlush'
mytest3.cpp:218: error: undefined reference to 'glMatrixMode'
mytest3.cpp:219: error: undefined reference to 'glLoadIdentity'
mytest3.cpp:232: error: undefined reference to 'glMatrixMode'
mytest3.cpp:233: error: undefined reference to 'glLoadIdentity'
mytest3.cpp:253: error: undefined reference to 'glReadBuffer'
mytest3.cpp:254: error: undefined reference to 'glReadPixels'
mytest3.cpp:303: error: undefined reference to 'glViewport'
mytest3.cpp:304: error: undefined reference to 'glMatrixMode'
mytest3.cpp:305: error: undefined reference to 'glLoadIdentity'
mytest3.cpp:317: error: undefined reference to 'glClearColor'
mytest3.cpp:321: error: undefined reference to 'glLoadIdentity'
mytest3.cpp:336: error: undefined reference to 'glCreateProgram'
mytest3.cpp:339: error: undefined reference to 'glGetProgramiv'
mytest3.cpp:342: error: undefined reference to 'glGetUniformLocation'
mytest3.cpp:343: error: undefined reference to 'glGetUniformLocation'
mytest3.cpp:355: error: undefined reference to 'glGenBuffers'
mytest3.cpp:369: error: undefined reference to 'glEnable'
mytest3.cpp:370: error: undefined reference to 'glDepthFunc'
collect2: ld returned 1 exit status
make: *** [mytest3] Error 1

I have glut installed:

$ find /usr -name glut.h
/usr/local/cuda-5.0/extras/CUPTI/include/GL/glut.h
/usr/local/cuda-5.0/samples/common/inc/GL/glut.h
/usr/include/GL/glut.h

$ locate libglut
/usr/lib/libglut.so
/usr/lib/gcc/x86_64-linux-gnu/4.4/libglut.so
/usr/lib/x86_64-linux-gnu/libglut.a
/usr/lib/x86_64-linux-gnu/libglut.so
/usr/lib/x86_64-linux-gnu/libglut.so.3
/usr/lib/x86_64-linux-gnu/libglut.so.3.9.0

So I don't know why the compiler is searching into the "gcc" path, it should work fine...

Also I tried:

sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so /usr/lib/gcc/x86_64-linux-gnu/4.4.7/libglut.so

But still not working.

I'm on ubuntu 12.10, and I first installed:

sudo apt-get install freeglut3-dev glew-utils libglew1.6-dev libfreeimage-dev
sudo apt-get install build-essential

What's wrong?

1 Answer 1

1

The first error:

/usr/bin/ld: error: no se puede abrir /usr/lib/gcc/x86_64-linux-gnu/4.4.7/../../../x86_64-linux-gnu/libGL.so: No existe el archivo o el directorio

You are missing libGL. Make sure your drivers/mesa are properly installed. Try

sudo apt-get install libgl1-mesa-dev
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.