存在哪些命令行工具可遞歸查找所有DLL依賴關係? 我試過dumpbin和Dependency Walker(又名Depends.exe),它隨Visual Studio一起提供,但是dumpbin只能找到第一級的依賴關係,而Dependency Walker的輸出並不是真正的計算機友好。用於查找Dll依賴關係的命令行工具
17
A
回答
14
試試/oc:FILENAME
選項依賴,寫一個逗號分隔值文件。這看起來像由機器解析比由/ ot:FILENAME /選項生成的「自由格式」文本文件更容易解析。
8
Dependency Walker有many options包括輸出到文件選項。其中之一是/oc:<path>
,它將輸出寫入CSV file,該工具很容易被其他工具解析,甚至只是導入到電子表格應用程序中。
根據您需要的依賴關係,您可能實際上也有跨平臺工具來執行此操作 - 例如CMake fixup-bundle可將所有檢測到的非系統依賴項複製到目標位置(可執行文件或共享庫) ,即使在Windows上。文檔沒有清楚地解釋它,但我現在已經在一個跨平臺項目中使用它。
2
使用/oc:<path>
選項,Dependency Walker爲您提供了一個易於解析的CSV file。如果您還想要庫的路徑,則還需要使用-f 1
選項。如果您需要複製這些庫(例如,製作可分發版本的可執行文件),則可能需要執行此操作。
不幸的是,在depends.exe的輸出中,庫的路徑被轉換爲小寫,並且DLL名稱被轉換爲大寫。例如,
C:\ QTSDK \桌面\ QT \ 4.7.4 \ MinGW的\ BIN \ QTCORE4.DLL
當庫實際上是位於:
Ç :\ QTSDK \桌面\的Qt \ 4.7.4 \ MinGW的\ BIN \ QtCore4.dll
似乎沒有成爲一個辦法讓帶的Depends.exe正確報告的路徑是恥辱。
相關問題
- 1. 查找dll依賴關係
- 2. 查找可執行文件依賴關係的命令
- 3. 爲什麼nuget命令行工具不遵循依賴關係?
- 4. DLL依賴關係
- 5. 從命令行運行具有依賴關係的maven項目
- 6. 類依賴關係工具
- 7. 查找YouTube依賴關係
- 8. 查找列依賴關係
- 9. 查找AAR依賴關係
- 10. 找不到dll或依賴關係
- 11. 在我的項目中查找命名空間依賴關係的工具?
- 12. 如何調查.NET DLL依賴關係?
- 13. 瞭解dll依賴關係
- 14. 共享DLL - 依賴關係
- 15. poco netssl dll依賴關係
- 16. 查找系統的依賴關係
- 17. .NET DLL運行時依賴關係
- 18. C++代碼查找給定DLL文件的依賴關係
- 19. 用於代碼依賴關係的Javascript分析工具
- 20. java依賴關係分析工具
- 21. Clutter工具包依賴關係 - Ubuntu 11.04
- 22. 結構圖 - 具有依賴關係的安裝依賴關係
- 23. mvn依賴關係:具有傳遞性依賴關係的樹
- 24. 使用Maven管理DLL依賴關係
- 25. 使用nuget.exe命令行安裝依賴關係
- 26. 用於查找表依賴關係的SQL服務器腳本
- 27. 依賴關係的nuget依賴關係
- 28. 查找Maven依賴項對象的依賴關係
- 29. 用於查找Java罐中所有依賴項的工具
- 30. 查找DISTINCT缺少SQL依賴關係
問題中提到的「依賴」是Dependency Walker的exe名稱。 – unwind 2008-12-09 14:53:05
依賴和依賴沃克和同樣的事情。我知道它可以在命令行中運行,但我說輸出不是計算機友好的。 – Jazz 2008-12-09 14:53:20
是的,我錯過了 - 我太快閱讀這個問題的糟糕之處。但我確實打算Unwind的答案在上面 - csv版本更容易解析。 – 2008-12-09 15:17:24