2012-11-01 29 views
5

Khi thực hiện ldd trên một tệp, nó trả về một số hex trong dấu ngoặc đơn vor mỗi thư viện mà nó tìm thấy.số hex ldd trong ngoặc đơn

Ví dụ:

[email protected]> ldd wpa_supplicant 
     linux-gate.so.1 => (0xb779b000) 
     libnl.so.1 => /usr/lib/libnl.so.1 (0xb774d000) 
     libssl.so.1.0.0 => not found 
     libcrypto.so.1.0.0 => not found 
     libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7748000) 
     libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75ed000) 
     libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb75c7000) 
     /lib/ld-linux.so.2 (0xb779c000) 

Nếu số hex không phải là một trong những thư viện thực thi một lần đã liên kết chống lại, một lỗi thông tin phiên bản có thể xảy ra.

Tôi có hai câu hỏi:

  1. đâu giá trị này có nguồn gốc?
  2. Làm cách nào để tìm ra giá trị hex nào mà tệp thực thi đang tìm kiếm? (tức là tài liệu ban đầu đã được liên kết)
+0

Tôi không biết điều này chắc chắn, nhưng tôi không nghĩ rằng số hex có liên quan đến phiên bản thư viện - tôi nghĩ đó là địa chỉ (được đề xuất/dự kiến) trong đó thư viện đó sẽ được ánh xạ vào chương trình giải quyết không gian khi bạn thực hiện nó. Để xem phiên bản thư viện nào bạn cần, hãy thử 'ldd -v'. – twalberg

+0

Nếu các giá trị này không thay đổi mỗi khi bạn chạy ldd, chỉ cần trích xuất hệ thống đó để băm nhỏ và sử dụng hệ thống Linux thực, an toàn và cập nhật. – BatchyX

Trả lời

Các vấn đề liên quan