Não é mais possível vincular a opengl

1

Após atualizar para o 11.10, não consigo vincular o código ao libgl / glut. O freeglut3-dev etc. está instalado e parece que eles também podem ser encontrados. Eu realmente não tenho certeza do que está acontecendo.

Makefile

gltest: gltest.cc
    gcc -Wall -lglut -lGLU -lGL gltest.cc -o gltest

gltest.cc

#include <GL/glut.h>

int main(int argc, char **argv) {

  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH |     GLUT_DOUBLE | GLUT_RGBA);
  glutInitWindowPosition(100,100);
  //glutInitWindowSizendowSize(320,320);
  glutCreateWindow("test");

  return 1;
}

Saída

jonas@fortress:~/dev/checkouts/test$ make
gcc -Wall -lglut -lGLU -lGL gltest.cc -o gltest
/tmp/cct1HevY.o: In function 'main':
gltest.cc:(.text+0x1e): undefined reference to 'glutInit'
gltest.cc:(.text+0x28): undefined reference to 'glutInitDisplayMode'
gltest.cc:(.text+0x37): undefined reference to 'glutInitWindowPosition'
gltest.cc:(.text+0x41): undefined reference to 'glutCreateWindow'
collect2: ld returned 1 exit status
make: *** [gltest] Error 1

Ao vincular com --verbose

attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libglut.so succeeded

E quando verificar os símbolos nesse arquivo

$ readelf -Ws /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../../lib/libglut.so|grep glutInit
   278: 000000000001dfc0  1581 FUNC    GLOBAL DEFAULT   11 glutInit

Estou muito confuso agora.

    
por Jonas Wagner 16.10.2011 / 19:42

2 respostas

1

Funciona quando eu coloco o -lGLU -lGL -logue no final da chamada do gcc. Ainda tenho certeza de que isso funcionou no passado.

    
por Jonas Wagner 23.10.2011 / 15:22
0

Seu Makefile não funciona mais por causa de uma transição de toolchain (a transição foi planejada para natty, mas a alteração o que faz com que seu problema seja feito onírico). O sinalizador de vinculador --as-needed é ativado por padrão no Ubuntu 11.10. Isso causa o problema que você observou. A solução é exatamente o que você descreveu em sua resposta.

% bl0ck_qu0te%     
por Nimmermehr 16.03.2012 / 14:53