2015-11-15 84 views
2

假設我爲android(arm)編譯了libFoo.so。我不確定它鏈接到的STL實現(有options)。我如何獲得依賴關係(如.so列表),以瞭解我應該使用System.load(...)/loadLibrary(...)提供和加載哪些文件?如何獲得.so文件的依賴列表?

+0

你想知道libFoo.so的依賴關係嗎? – basav

+1

ldd命令應該有所幫助。您可以使用設備命令提示符導航到android文件系統,並執行命令ldd libFoo.so。這將列出這個動態庫依賴的所有依賴關係! – k2ibegin

+0

我怎麼能得到它? ndk中也沒有ldd,也沒有獨立的工具鏈。在我的Mac上找不到它 – 4ntoine

回答

4

您可以使用objdump工具並篩選出相關部分。在這種情況下,例如arm-linux-androideabi-objdump -p libFoo.so | grep NEEDED

正如建議的ldd工具通常也會這樣做,但它會嘗試實際查找所有將被加載的文件,並且它在交叉編譯環境中並不總是可用。

相關問題