我有一個應用程序,在啓動時將.so文件加載爲插件,使用dlopen()
是否有任何工具可用於檢查交叉編譯的.so文件中的符號?
構建環境在x86硬件上運行,但應用程序正在針對另一個平臺進行交叉編譯。
如果我可以(作爲自動化構建過程的一部分)執行檢查以確保在.so文件和應用程序的組合中沒有任何未解決的符號,而無需實際部署應用程序。
在我編寫腳本測試符號使用輸出nm
之前,我想知道是否有人知道已經這樣做的實用程序?
編輯1:略有變化的說明 - 我不只是想在。所以測試的符號,而是幾個。所以公司和應用程序本身的結合 - 即。在應用程序加載所有的.so之後,是否仍然存在未解析的符號。
正如答案中所建議的(感謝Martin v。Löwis和tgamblin),nm
可以輕鬆識別單個文件中缺失的符號,但不容易識別哪些符號已在其他已加載模塊之一中解決。
也許你可以使用遞歸ldd來做到這一點。我在下面回答了這個問題。 – tgamblin 2008-11-06 23:30:20