referência indefinida para 'glib_major_version'

0

Você pode, por favor, me dizer como eu posso resolver este erro de 'referência indefinida' quando linkando no Ubuntu 10.10

conftest.c:(.text+0x4): undefined reference to 'glib_major_version'

conftest.c:(.text+0xd): undefined reference to 'glib_minor_version'

conftest.c:(.text+0x16): undefined reference to 'glib_micro_version'

collect2: ld returned 1 exit status

Eu adicionei 'export LD_LIBRARY_PATH = / usr / lib: / lib: $ LD_LIBRARY_PATH' ao meu .bashrc.

$ ls -la libgl*.*

lrwxrwxrwx 1 root root 23 2010-12-17 18:29 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0

-rw-r--r-- 1 root root 842208 2010-09-27 16:16 libglib-2.0.so.0.2600.0

/lib $ pwd

/lib

Mas isso não resolve o problema. O que devo fazer?

    
por michael 02.02.2011 / 20:57

1 resposta

0

Qual comando você está executando para compilá-lo?

Há algum outro erro que leve a esse erro?

Eu tenho a mesma versão do arquivo que você e tem esses símbolos.

$ ls -l libglib*
lrwxrwxrwx 1 root root     23 2010-12-05 06:03 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0
-rw-r--r-- 1 root root 842208 2010-09-28 09:16 libglib-2.0.so.0.2600.0
$ nm -D libglib-2.0.so.0.2600.0 | grep version
00073730 T glib_check_version
000c849c R glib_major_version
000c84a4 R glib_micro_version
000c84a0 R glib_minor_version

Você está compilando seu próprio programa? Talvez você só precise dizer ao vinculador para vincular em glib adicionando a opção -lglib-2.0 .

Se você estiver executando o gcc -o conftest conftest.c , deverá fazer gcc -o conftest -lglib-2.0 conftest.c .

Ou você pode adicionar -lglib-2.0 a LDFLAGS .

Você está compilando o programa de outra pessoa? Pode estar usando pkgconfig . Pode haver algumas coisas em /usr/local que confundem as coisas.

Você mesmo instalou outros programas ou bibliotecas? Talvez algo que se instalou em /usr/local/lib ?

O que diz cat /usr/lib/pkgconfig/glib* ?
O que diz cat /usr/local/lib/pkgconfig/glib* ?

Pode ser necessário alterar o valor de LD_LIBRARY_PATH para incluir /usr/local/lib ou talvez alterar PKG_CONFIG_PATH ou adicionar algumas opções a ./configure .

A resposta depende do que você está fazendo.

    
por 02.02.2011 / 21:49