Compilando o hping3 no Raspberry Pi. Erro do vinculador: não é possível encontrar -ltcl

0

Estou tentando instalar o hping em um Raspberry Pi 2. Baixei a fonte do GitHub, link .

Depois de executar ./configure , tentei make , mas recebi uma mensagem de erro do vinculador:

/usr/bin/ld: cannot find -ltcl

A libtcl8.6 está instalada e está localizada em /usr/lib/arm-linux/gnueabihf/libtcl8.6.so /usr/lib/arm-linux/gnueabihf/libtcl8.6.so.0

Posso resolver esse problema fazendo um link flexível? Se sim, onde? Não tenho certeza de onde o vinculador está procurando a biblioteca.

    
por Nevado 31.12.2016 / 03:07

2 respostas

0

-ltcl irá procurar por um arquivo chamado libtcl.so nos caminhos da biblioteca padrão, enquanto o seu é chamado libtcl8.6.so em um local bastante estranho (que pode ser normal no Raspbian).

O problema aqui é que sua fonte hping do Git contém um script configure já gerado sem sua configure.ac source (ou um script de configuração escrito à mão que imita scripts de autotools).

Se você procurar em seu script configure , você verá que ele parece Versões Tcl específicas opcionais em locais fixos que não correspondem ao seu sistema:

#
# TCL detection
#
for TCLPATH_TRY in "/usr/bin/" "/usr/local/bin/" "/bin/"
do
    for TCLVER_TRY in "8.4" "8.3" "8.2" "8.1" "8.0"
    do
        #....

Você deve editar este script de configuração para adicionar:

  1. seu caminho de biblioteca
  2. sua versão da biblioteca

Em seguida, execute novamente o script configure , leia atentamente suas saídas (ele deve imprimir TCL_LIB: -ltcl8.6 ) e tente um make .

    
por 31.12.2016 / 15:07
0

Se você não usasse o TCL, execute ./configure --no-tcl antes de tentar emitir make . BTW, antes de fazer isso, instale libpcap-dev

sudo apt-get install  libpcap0.8 libpcap0.8-dev libpcap-dev

caso contrário, ele se recusará a compilar.

Dirty e quick way (não tentei isso, mas geralmente funciona) para corrigir cannot find -ltcl é symlink

ln -s /usr/lib/arm-linux/gnueabihf/libtcl8.6.so.0 /usr/lib/arm-linux/gnueabihf/libtcl8.6.so
    
por 31.12.2016 / 05:55