Hping3 auf Raspberry Pi kompilieren. Linker-Fehler: -ltcl kann nicht gefunden werden

879
Nevado

Ich versuche, Hping auf einem Raspberry Pi 2 zu installieren. Ich habe die Quelle von GitHub ( https://github.com/antirez/hping) heruntergeladen .

Nach dem Ausführen habe ./configureich es versucht make, aber ich habe eine Fehlermeldung vom Linker erhalten:

/ usr / bin / ld: kann -ltcl nicht finden

libtcl8.6 ist installiert und befindet sich in /usr/lib/arm-linux/gnueabihf/libtcl8.6.so /usr/lib/arm-linux/gnueabihf/libtcl8.6.so.0

Kann ich dieses Problem durch einen Softlink lösen? Wenn ja wo? Ich bin nicht sicher, wo der Linker nach der Bibliothek sucht.

0

2 Antworten auf die Frage

0
Alex

Wenn Sie TCL nicht verwenden würden, führen Sie es aus, ./configure --no-tclbevor Sie versuchen, es auszugeben make. Übrigens, bevor Sie das installieren würdenlibpcap-dev

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

Andernfalls lehnt es die Kompilierung ab.

Schmutziger und schneller Weg (habe das nicht versucht, aber normalerweise funktioniert es), um cannot find -ltcles zu beheben, ist Symlink

ln -s /usr/lib/arm-linux/gnueabihf/libtcl8.6.so.0 /usr/lib/arm-linux/gnueabihf/libtcl8.6.so 
0
A. Loiseau

-ltclsucht nach einer Datei, die libtcl.soin Standardbibliothekpfaden benannt ist, während Ihre Datei libtcl8.6.soan einem recht ungeraden Ort benannt wird (was bei Raspbian jedoch normal sein kann).

Das Problem hierbei ist, dass Ihre hping-Git-Quelle ein bereits erstelltes configureSkript ohne seine configure.acQuelle enthält (oder ein von Hand erstelltes Konfigurationsskript, das Autotools-Skripts nachahmt).

Wenn Sie in Ihrem configureSkript nachschauen, werden Sie feststellen, dass es nach bestimmten optionalen Tcl-Versionen an festen Speicherorten sucht, die nicht zu Ihrem System passen:

# # 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 #.... 

Sie sollten dieses Konfigurationsskript bearbeiten, um Folgendes hinzuzufügen:

  1. Ihr Bibliothekspfad
  2. Ihre Bibliotheksversion

Führen Sie dann das configureSkript erneut aus, lesen Sie die Ausgaben sorgfältig durch (sollte gedruckt werden TCL_LIB: -ltcl8.6), und versuchen Sie es mit a make.

Es war genau wie du gesagt hast. Vielen Dank :) Nevado vor 7 Jahren 0