2010-05-27 82 views
2

在Qt中是否有類似於dumpbin(Visual Studio)的實用程序,它允許我檢查在Qt-Creator編譯的dll中公開的函數?在Qt中相當於dumpbin

我需要知道在給定的dll中公開了哪些方法,以便我可以在運行時使用QLibrary動態加載該方法。

感謝, 德Costo

+0

「Qt-Creator編譯」是什麼意思? Qt-Creator不是一個編譯器。推測它仍然使用CL.EXE? – Troubadour 2010-05-27 20:21:24

+0

@Troubadour:我使用g ++作爲編譯器來包裝g ++。我的意思是QtCreator附帶的默認編譯器 – 2010-05-27 22:36:53

+0

@de costo:QtCreator沒有附帶編譯器。 – Troubadour 2010-05-28 00:24:16

回答

5

您可以使用Dependency Walker。對於任何可執行文件來說,這是一個非常有用的工具,不管它是動態庫還是應用程序。

此外,沒有什麼能阻止你用Qt Creator中的VC++進行編譯(Qt Creator支持GCC和VC++作爲編譯器,也許更多)並使用dumpbin。

+0

你可以鏈接到「Dependency Explorer?」嗎?我猜你的意思是Dependency Walker(depend.exe)? – 2010-05-27 20:51:25

+0

VC++是指IDE。編譯器被稱爲cl.exe – shoosh 2010-05-27 20:54:23

+0

@Kaleb,哦,對,修復! @shoosh,cl.exe實際上是指用Visual C++附帶的Microsoft C++編譯器的一種不好的方法(它們有兩個我知道的 - 使用Visual C++,也分開分發,另一個使用Driver Development Kit - 兩者都有相同的可執行文件,但生成的代碼略有不同 – CMircea 2010-05-27 21:06:47

1
  • 在Linux和Mac上,使用nm
  • 在Windows上,你可以通過Cygwin使用nm,但我認爲dumpbin仍然可以工作。 (我剛在通過Qt Creator的相剋++編譯一個項目,它的工作。)
1

或者:

  • 使用現有的MS Visual Studio安裝和DUMPBIN.EXE
  • 安裝Windows SDK(僅限Win32開發工具)並使用其dumpbin.exe
  • 學會使用mingw/GCC(實際上是binutils)nmobjdump

我發現(即使使用mingw/gcc)dumpbin.exe提供了最好的結果。