Como obter librairies solicitadas de gridwars?

0

Gostaria de obter uma lista de bibliotecas solicitadas pelo executável do Gridwars.

Eu há um ano usei o ldd mas

moi@myComputer:/opt/gridwars/gridwars_lin$ ldd gridwars 
    not a dynamic executable

Depois de navegar na Internet, encontrei

moi@myComputer:/opt/gridwars/gridwars_lin$ readelf -d gridwars 

Dynamic section at offset 0x70014 contains 27 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libX11.so.6]
 0x00000001 (NEEDED)                     Shared library: [libGL.so.1]
 0x00000001 (NEEDED)                     Shared library: [libGLU.so.1]
 0x00000001 (NEEDED)                     Shared library: [libXxf86vm.so.1]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.5]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000c (INIT)                       0x804a284
 0x0000000d (FINI)                       0x80b29bd
 0x00000004 (HASH)                       0x8048168
 0x00000005 (STRTAB)                     0x8049268
 0x00000006 (SYMTAB)                     0x8048678
 0x0000000a (STRSZ)                      2091 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x80b811c
 0x00000002 (PLTRELSZ)                   1408 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x8049d04
 0x00000011 (REL)                        0x8049cd4
 0x00000012 (RELSZ)                      48 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x8049c14
 0x6fffffff (VERNEEDNUM)                 4
 0x6ffffff0 (VERSYM)                     0x8049a94
 0x00000000 (NULL)                       0x0

Certo, tenho uma lista dos objetos compartilhados solicitados. Mas isso ainda me causa alguns problemas: não consigo entender duas coisas ...

Como proposto no comentário, podemos querer executar o utilitário de arquivos no executável.

moi@mycomputer:/opt/gridwars/gridwars_lin$ file gridwars 
gridwars: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped
  • Como posso verificar se um objeto ".so" / objeto compartilhado está disponível?

  • Por que diabos o executável do gridwars não é um executável? Lembro-me da coisa ser um executável e até mesmo ter encontrado um comando mágico em três letras que a lista solicitou objetos compartilhados e se houvesse disponibilidade.

Obrigado por qualquer ajuda.

    
por MUY Belgium 26.11.2013 / 21:59

2 respostas

1

Depois de instalar o pacote a seguir,

sudo apt-get install libc6:i386
sudo apt-get install libxxf86vm1:i386
sudo apt-get install libglu1-mesa:i386
sudo apt-get install libstdc++5:i386

Você recebe

moi@somewhere:/opt/gridwars/gridwars_lin$ ldd gridwars 
    linux-gate.so.1 =>  (0xf77b2000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf765d000)
    libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xf7604000)
    libGLU.so.1 => /usr/lib/i386-linux-gnu/libGLU.so.1 (0xf757c000)
    libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf7576000)
    libstdc++.so.5 => /usr/lib/i386-linux-gnu/libstdc++.so.5 (0xf74bc000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7479000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf745e000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf72a9000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf7287000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7282000)
    libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf726b000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf7259000)
    libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf7254000)
    libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf724d000)
    libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf724a000)
    libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf7232000)
    libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xf722d000)
    libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf721f000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7136000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7119000)
    /lib/ld-linux.so.2 (0xf77b3000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf7115000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf710e000)

E o jogo funciona.

    
por MUY Belgium 13.12.2013 / 19:34
0

Como instalar o Gridwars 2

Abra o terminal e execute estes:

mkdir gridwars && cd gridwars
wget http://gridwars.marune.de/bin/gridwars_lin.zip
unzip gridwars_lin.zip
./gridwars

Eu então recebi este erro:

[wilf@comp gridwars]$ ./gridwars 
./gridwars: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Então eu tive que instalar o libstdc 5 - I - I controu um rpm em vez de ser instalado na minha máquina Fedora 19 .

Funcionou muito bem - bom jogo

    
por Wilf 04.12.2013 / 18:19