簡體   English   中英

ldd顯示重復的共享庫

[英]ldd show duplicated shared library

我不清楚為什么ldd在找不到依賴項時不止一次向我顯示同一個共享庫。 在使用boost的小型可執行文件中,輸出為:

libboost_chrono.so.1.49.0 => not found
libboost_system.so.1.49.0 => not found
libboost_system.so.1.49.0 => not found
libboost_program_options.so.1.49.0 => not found
libboost_regex.so.1.49.0 => not found

否則在安裝正確的依賴項后,ldd只顯示一個:

libboost_system.so.1.49.0 => /usr/lib/libboost_system.so.1.49.0 
libboost_regex.so.1.49.0 => /usr/lib/libboost_regex.so.1.49.0 
libboost_program_options.so.1.49.0 => /usr/lib/libboost_program_options.so.1.49.0
libboost_chrono.so.1.49.0 => /usr/lib/libboost_chrono.so.1.49.0 

為什么會這樣?

謝謝,

第二次,ldd找到共享庫,並緩存信息,因此不需要繼續查找它。

但是在您的第一種情況下,它找不到共享庫,因此無需緩存。 因此,當它發現另一個你知道應該是同一個共享庫的引用時,它只知道它沒有找到它,所以它尋找它。 然后第二次打印錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM