Biên dịch hping3 trên Raspberry Pi. Lỗi liên kết: không thể tìm thấy -ltcl


0

Tôi đang cố gắng cài đặt hping trên Raspberry Pi 2. Tôi đã tải xuống nguồn từ GitHub, https://github.com/antirez/hping .

Sau khi thực hiện ./configuretôi đã thử make, nhưng tôi nhận được thông báo lỗi từ trình liên kết:

/ usr / bin / ld: không thể tìm thấy -ltcl

libtcl8.6 được cài đặt và nó nằm ở /usr/lib/arm-linux/gnueabihf/libtcl8.6.so /usr/lib/arm-linux/gnueabihf/libtcl8.6.so.0

Tôi có thể giải quyết vấn đề này bằng cách tạo một liên kết mềm không? Nếu vậy thì ở đâu? Tôi không chắc chắn nơi trình liên kết đang tìm kiếm thư viện.

Câu trả lời:


0

-ltclsẽ tìm kiếm một tệp có tên libtcl.sotrong đường dẫn thư viện tiêu chuẩn trong khi tệp của bạn được đặt tên libtcl8.6.soở một vị trí khá kỳ lạ (có thể là bình thường trên Raspbian).

Vấn đề ở đây là nguồn Git hping của bạn có chứa một configuretập lệnh đã được tạo mà không có configure.acnguồn của nó (hoặc tập lệnh cấu hình viết tay bắt chước các tập lệnh tự động).

Nếu bạn nhìn vào configuretập lệnh của mình , bạn sẽ thấy nó tìm một số phiên bản Tcl cụ thể tùy chọn ở các vị trí cố định không khớp với hệ thống của bạn:

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

Bạn nên chỉnh sửa tập lệnh cấu hình này để thêm:

  1. đường dẫn thư viện của bạn
  2. phiên bản thư viện của bạn

Sau đó, chạy lại configuretập lệnh, đọc kỹ các đầu ra của nó (cần in TCL_LIB: -ltcl8.6) và thử a make.


Đúng như bạn nói. Cảm ơn bạn rất nhiều :)
Nevado

0

Nếu bạn không sử dụng TCL, hãy chạy ./configure --no-tcltrước khi thử phát hành make. BTW, trước khi bạn thực hiện cài đặt đólibpcap-dev

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

nếu không nó sẽ từ chối biên dịch.

Cách bẩn và nhanh chóng (không thử điều đó, nhưng thường thì nó hoạt động) để khắc phục cannot find -ltclnó là symlink

ln -s /usr/lib/arm-linux/gnueabihf/libtcl8.6.so.0 /usr/lib/arm-linux/gnueabihf/libtcl8.6.so
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.