referência indefinida para `glib_major_version'

referência indefinida para `glib_major_version'

Você pode me dizer como posso resolver esse erro de ‘referência indefinida’ ao vincular no Ubuntu 10.10

conftest.c:(.text+0x4): referência indefinida para `glib_major_version'

conftest.c:(.text+0xd): referência indefinida para `glib_minor_version'

conftest.c:(.text+0x16): referência indefinida para `glib_micro_version'

collect2: ld retornou 1 status de saída

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

$ ls -la libgl*.*

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

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

/lib $ pwd

/lib

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

Responder1

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

Existem outros erros que levaram a esse erro?


Eu tenho a mesma versão do arquivo que você e contém 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 glibadicionando a -lglib-2.0opção.

Se você estiver executando o
gcc -o conftest conftest.c, você deve fazê-lo
gcc -o conftest -lglib-2.0 conftest.c.

Ou você pode -lglib-2.0adicionar LDFLAGS.


Você está compilando o programa de outra pessoa? Pode estar usando pkgconfig. Pode haver algumas coisas /usr/localque estão confundindo as coisas.

Você mesmo instalou algum outro programa ou biblioteca? Talvez algo que se instalou /usr/local/lib?

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

Talvez seja necessário alterar o valor de LD_LIBRARY_PATHpara incluir /usr/local/lib, ou talvez alterar PKG_CONFIG_PATHou adicionar algumas opções a ./configure.

A resposta depende do que você está fazendo.

informação relacionada