Criando Binário Estático

13

Eu instalei um aplicativo [por exemplo fdisk]. Mas exigiu bibliotecas para execução. Estou à procura de utilitário / ferramenta que me ajudará a criar um binário estático a partir de binários instalados. Para que eu possa usá-lo em qualquer lugar.

As únicas ferramentas confiáveis que encontrei são ErmineLight de aqui , mas este aqui é share-ware.

Existe algum software de código aberto disponível para o mesmo?

EDIT fdisk é apenas um exemplo. Eu na maior parte do tempo trabalho no LFS, então se eu tiver que usar algum utilitário, eu preciso seguir os passos como

  1. Download the source
  2. configure
  3. make
  4. make test
  5. make install,

Então, apenas para economizar tempo, estou procurando uma solução na qual farei um binário estático a partir do debian ou do fedora ou de outro distrbution, experimente-o no LFS e se funcionar bem ou conforme minha exigência Eu irei com código-fonte para compilação.

    
por SHW 02.05.2011 / 20:38

3 respostas

14

Se o fdisk é apenas um exemplo e seu objetivo é realmente fazer executáveis estáticos a partir de executáveis dinâmicos, tente o estatificador Elf . Existe até mesmo uma comparação com o Ermine (pelo fornecedor do Arminho, por isso não se preocupe com o (nem)) . Note que

  • Se você tiver muitos executáveis, o tamanho combinado deles provavelmente será maior que o tamanho combinado dos executáveis vinculados dinamicamente, além das bibliotecas dinâmicas necessárias.
  • Existem recursos do GNU libc que podem não funcionar em executáveis vinculados estaticamente, como NSS (bancos de dados de nomes de usuários, nomes de host, etc.) e recursos relacionados ao código do idioma.

Se o seu objetivo é ter um conjunto pequeno e portátil de ferramentas de sistema, você está procurando pelo BusyBox , um conjunto de ferramentas ferramentas destinadas a sistemas embarcados (incluindo fdisk ). Você também pode estar interessado em uma biblioteca padrão menor do que a Glibc, por exemplo, dietlibc ou µClibc .

    
por 02.05.2011 / 23:47
0

Bem ... isso parece uma ideia muito ruim. Mas é possível.

Como o fdisk é open source, apenas pegue sua fonte e veja o Makefile. Você deve encontrar uma opção que passará "-static" para o gcc na compilação.

Eu não sou um guru C / C ++, mas tanto quanto eu sei, criar um binário com ligação estática de um binário existente dinamicamente não é possível.

Se você quiser usá-lo em qualquer lugar, recomendo usar uma pequena distribuição de manutenção que comece em segundos e permita modificar tudo.

Faz mais sentido para mim, porque você provavelmente desejará modificar o disco que está executando a instalação do Linux / UNIX.

    
por 02.05.2011 / 23:22
-2

você também pode usar ELFex Linker , é um programa muito legal que acabei de descobrir, seu gui e pode criar executáveis estáticos a partir de o executável dinâmico.

    
por 27.08.2015 / 20:30