我想在我的项目中包含一个外部库(.lib指向一个.dll)。 我build立在使用QT的窗口(它似乎是使用msvc2010作为编译器),并在我的.pro文件中有: LIBS += <path>/<libraryName>.lib
。 在输出可执行文件的目录中有相应的.dll文件,因此可以find它。 当程序运行时,我从QT获得以下内容:
Starting (program name)... The program has unexpectedly finished. (program name) exited with code -1073741515
在它周围search似乎这种types的错误可能来自.dll文件有所不同,以某种方式比你所期望的,这似乎是至less部分在这里的问题。 当我用dependency walker打开我的程序时,我可以看到我的.dll文件和其中的函数看起来是正确的,据我所知。 然而,在父importfunction窗格中的函数不同意或看起来不正确(我想为什么我得到我的错误)。 这些函数定义与我使用的另一个外部库的函数完全匹配。
对我来说,这表明以某种方式.lib文件是不正确的,但是我已经使用这对.lib / .dll文件之前在不同的程序(不是在QT内置),他们工作正常。 此外,我已经尝试从我的.pro文件中删除对.lib文件的引用,并且正确的函数调用了抱怨(从find的.dll文件中定义的这个库中的库)。 .lib文件看起来完全如我所料,也使用Dumpbin.exe / EXPORTS查看其内容。
任何关于什么依赖沃克试图告诉我或我现在应该尝试什么的想法是真棒。
编辑2/8:我已经构build了一个最小的例子 。 它停止在相同的步行器,而不是显示从另一个库函数显示没有预期的function相同的错误。
看看你最小的例子给出的解释,看起来这里发生的是没有MinGW函数调用库(他们都是MSVC调用)。 在库中找到的函数被正确列出,因为它们只是没有被链接到另一个编译器。 至于为什么不同的库函数显示出来,我会猜测它是依赖walker中的一个错误。