ld não pode encontrar o libm de 32 bits existente

3

Estou apenas postando depois de esgotar todas as outras respostas que encontrei no google. Eu ainda não consigo descobrir meu problema. Eu tento usar g + + para compilar em 32 bits em uma máquina da Red Hat. Este é o meu comando:

BITS=32
OS='uname -s'

g++ -D$OS -O3 -Wall -pipe -m$BITS -c *.cpp

Mas o vinculador não consegue encontrar uma biblioteca:

/usr/bin/ld: cannot find -lm
collect2: ld returned 1 exit status

Mas ... o libm.so de 32 bits existe no lugar habitual.

>file /usr/lib/libm.so 
/usr/lib/libm.so: symbolic link to '../../lib/libm.so.6'
>file /lib/libm.so.6 
/lib/libm.so.6: symbolic link to 'libm-2.12.so'
>file /lib/libm-2.12.so 
/lib/libm-2.12.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

Eu tentei o material simples, como verificado que o / usr / lib ainda está listado no LD_LIBRARY_PATH, e eu tentei adicionar o -lm ao comando g ++.

Estes são todos os pacotes glibc instalados (o glibc fornece libm.so e libm.a):

compat-glibc.x86_64                  1:2.5-46.2
compat-glibc-headers.x86_64          1:2.5-46.2
glibc.i686                           2.12-1.132.el6
glibc.x86_64                         2.12-1.132.el6
glibc-common.x86_64                  2.12-1.132.el6
glibc-devel.i686                     2.12-1.132.el6
glibc-devel.x86_64                   2.12-1.132.el6
glibc-headers.x86_64                 2.12-1.132.el6
glibc-utils.x86_64                   2.12-1.132.el6

Também me deparei com uma sugestão para executar:

>readelf -a /usr/lib/libm.so | grep PATH

mas não produz nada.

Quaisquer outros pensamentos ou ideias? É possível obter uma reclamação do vinculador quando algo está errado? Qualquer resposta é muito apreciada.

    
por imomushi8 27.04.2015 / 16:45

1 resposta

1

Bem, sou bobo. Na verdade, foi a opção --static no meu comando de vinculação. Em vez das bibliotecas estáticas, eu me livrei do --static , trabalhei com alguns erros relacionados ao código e ele compilou corretamente. Obrigado pelas respostas.

    
por 28.04.2015 / 14:15

Tags