2
在Linux上,我在同一臺機器上構建了兩個二進制文件A和B.我把它們帶到安裝了稍舊的libstdC++的另一臺機器上。當我運行LDD二元一-v我得到這個:如何確定libstdC++依賴關係?
libstdc++.so.6 (CXXABI_1.3) => /usr/lib64/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib64/libstdc++.so.6
當我運行LDD對二進制B等-v我得到這個:
libstdc++.so.6 (CXXABI_1.3) => /usr/lib64/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => not found
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib64/libstdc++.so.6
注意未找到GLIBCXX_3.4.15的依賴。這很有意義,因爲安裝的libstdC++只支持GLIBCXX_3.4.10。
問題是:ldd通過什麼機制確定二進制B依賴於GLIBCXX_3.4.15?更重要的是,我如何確定哪些代碼導致了這種依賴關係?
非常酷!謝謝 – Skrymsli 2012-03-08 17:47:01