2010-05-27 83 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提供了最好的结果。