Probelemas ao executar ep2-linux

Probelemas ao executar ep2-linux

por Renato de Souza -
Número de respostas: 8

Olá,

instalei, conforme as orientações no outro tópico o OpenGL e o Glut. Porém, ao executar o arquivo, ocorre o erro:

./ep2-linux: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory

Ao buscar esse arquivo no terminal, encontrei o mesmo em:

/usr/lib/libGL.so.1

 

um detalhe: meu SO é 64 bit, poderia ser isso que ocasionou o erro?

Em resposta à Renato de Souza

Re: Problemas ao executar ep2-linux

por Wellington Castello -

Bem provável, o executável ep2-linux é 32-bit:

ep2-linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x6000e401b7a6950175f88f654b1c25ec9ac2c3bf, stripped

E as shared libs do OpenGL que você instalou devem ser 64-bit por causa do seu SO.

Em resposta à Wellington Castello

Re: Problemas ao executar ep2-linux

por Gustavo Estrela de Matos -

Estou com o mesmo problema aqui... alguém tem uma solução?

Em resposta à Gustavo Estrela de Matos

Re: Problemas ao executar ep2-linux

por Gustavo Estrela de Matos -

Usei locate e apareceu nos seguintes diretórios:

/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0

Em resposta à Wellington Castello

Re: Problemas ao executar ep2-linux

por Renato de Souza -

Compilei e executei as versões gráficas do EP1 e do curvas de Hilbert. Ambas funcionaram normalmente; é um problema de compatibilidade mesmo.

Em resposta à Renato de Souza

Re: Probelemas ao executar ep2-linux

por José Coelho de Pina -

Salve,

Bem provável, o executável ep2-linux é 32-bit:

Coloquei na página do EP o executável ep2-linux64 para linux de 64 bits.

A propósito, para saber o tipo de um arquivo basta fazer

meu_prompt> file "nome do arquivo".

Por exemplo:

meu_prompt> file ep2-linux
ep2-linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x6000e401b7a6950175f88f654b1c25ec9ac2c3bf, stripped meu_prompt> file ep2-linux64 ep2-linux64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xefe799a1a51cd7dd04336c563931b85fa1e1e984, stripped meu_prompt> file ep2-macosx ep2-macosx: Mach-O 64-bit executable meu_prompt> file ep2-windows.exe ep2-windows.exe: PE32 executable (console) Intel 80386 (stripped to external PDB),
for MS Windows meu_prompt> file imagem2.ppm imagem2.ppm: Netpbm PPM "rawbits" image data
Em resposta à Renato de Souza

Re: Probelemas ao executar ep2-linux

por José Coelho de Pina -

Salve,

Ainda sobre "rodar executáveis de 32 bit (linux) em máquinas de 64 (linux)...

./ep2-linux: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory

A extensão .so é usada para shared object or dynamically linked library.

http://en.wikipedia.org/wiki/Shared_object#Shared_libraries

Esses arquivos contém bibliotecas que são carregas em quando o programa está sendo executado

"Modules used by a program are loaded from individual shared objects into memory at load time or run time.."

O utilitário ldd do linux exibe as bibliotecas necessárias pelo programa:

meu_prompt> man ldd
NAME
       ldd - print shared library dependencies

SYNOPSIS
       ldd [OPTION]...  FILE...

DESCRIPTION
       ldd prints the shared libraries required by each program or shared library specified on the command line.
[. . .]

No caso do executável ep2-linux (32 bits) temos que

meu_prompt> ldd ep2-linux
	linux-gate.so.1 =>  (0xf7701000)
	libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xf768c000)
	libGLU.so.1 => not found
	libglut.so.3 => not found
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74d8000)
	libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf74c1000)
	libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf74af000)
	libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf74ab000)
	libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf74a3000)
	libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf74a0000)
	libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7369000)
	libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf7351000)
	libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xf734c000)
	libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf7329000)
	libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf7323000)
	libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf7316000)
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf72fb000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf72f6000)
	/lib/ld-linux.so.2 (0xf7702000)
	libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf72f1000)
	libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf72ea000)

Assim, estão faltando duas biblitecas executarmos o ep2-linux (32 bits) em uma máquina linux Ubuntu 64 bits.

Copiado do fórum de MAC0122 do ano passado:

Para contornar o problema, basta instalar as bibliotecas de tempo de execução para
arquitetura i386. No caso do Debian (e derivados), o pacote se chama "ia32-libs".
(Carlos Eduardo Elmadjian)