[英]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.