Logo Hardware.com.br
eyamamoto
eyamamoto Super Participante Registrado
865 Mensagens 13 Curtidas

Cross Compiler: erro em arquivos linker

#1 Por eyamamoto 13/02/2013 - 11:33
Bom dia meus caros.

Estou aventurando-me em programação utilizando cross compilers para arquitetura arm, basicamente tentando desenvolver algo para rodar na placa beaglebone. Sou ainda um novato no mundo linux/unix.

Consegui compilar o qt, instalar, tudo certo, até empacar no seguinte erro:
/usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/../../lib/libpthread.so.0 when searching for ../../lib/libpthread.so.0
/usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/lib/../../lib/libpthread.so.0 when searching for ../../lib/libpthread.so.0
/usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../arm-arago-linux-gnueabi/lib/../../lib/libpthread.so.0 when searching for ../../lib/libpthread.so.0
/usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/../../lib/libc.so.6 when searching for ../../lib/libc.so.6
/usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/lib/../../lib/libc.so.6 when searching for ../../lib/libc.so.6
/usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../lib/gcc/arm-arago-linux-gnueabi/4.5.3/../../../../arm-arago-linux-gnueabi/bin/ld: skipping incompatible /usr/local/ti-sdk-am335x-evm/linux-devkit/bin/../arm-arago-linux-gnueabi/lib/../../lib/libc.so.6 when searching for ../../lib/libc.so.6

Segundo muitos relatos na internet, o problema está nos arquivos linker(libpthread.so e libc.so), que o compilador busca direto na raiz ao invés de buscar na pasta do compilador.


Aqui referencia da solução.
http://dileeppanjala.blogspot.com.br/2012/03/change-group-in-linker-scripter-file.html


Executando o comando
 cat /usr/local/ti-sdk-am335x-evm/linux-devkit/arm-arago-linux-gnueabi/usr/lib/libpthread.so
consigo o seguinte:

/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( ../../lib/libpthread.so.0 ./libpthread_nonshared.a )

Preciso alterar o GROUP para ficar da seguinte forma:
GROUP ( libpthread.so.0 libpthread_nonshared.a )

Alguém que saiba como criar ou alterar o linker poderia ajudar ? Ou criar um arquivo novo....

VLw .
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal