VS2015 + VTK 7.1.0 + Qt 5.8.0 运行 来自 VTK 入口点失败的 Qt 示例

VS2015 + VTK 7.1.0 + Qt 5.8.0 running Qt examples from VTK entry point failure

目前我正在尝试结合使用 VTK 库和 Qt 来构建一个应用程序来可视化 STL 文件。首先,我安装了以下 libraries/programs:

对于Qt,我使用了为vs2015编译的版本即:

按照 Kitware 提供的说明进行操作后,一切似乎都很好,我在配置和构建 VTK 时没有遇到任何错误。所以后来我决定使用 VTK 的一些示例代码作为起点。

再次 link 应用程序的构建和构建很顺利,但是当我尝试启动应用程序时,我收到了以下错误:

程序入口点 ?rgbSwapped@QImage@@QEHAA$$QEAV1@Z 无法位于动态 link 库 C:\VTK\bin\bin\Release\vtkGUISupportQt-7.1.dll.

我已经搜索了解决方案,但找不到。我也尝试了其他版本的 VTK 和 Qt,但仍然出现此错误。例如,今天早上我尝试将 VTK 6.3.0 与 Qt 4.8.5 结合使用,再次一切顺利,直到我尝试 运行 一些代码,这次我收到此错误:

过程入口点 ?doItemsLayout@QTableView@@UAEXXZ 无法位于动态 link 库 C:\VTK\bin\bin\Release\vtkGUISupportQt-6.3.dll.

如果有人遇到过此类错误,请告诉我。

我遇到了同样的问题。这对我来说似乎很奇怪,为什么系统在 $PATH 中看不到 QT dll,但是如果你把 Qt dll 放在你的可执行目录中它会 运行 没问题。也许有更多经验的人可以解释这种行为。

It seems strange to me, why system doesn`t see QT dll in the $PATH, but if you put Qt dll in you executable directory it will run fine.

这取决于 Windows 如何找到 DLL。有关详细信息,请参阅 Dynamic-Link Library Search Order。出于这个原因,我总是将所需的 DLL 放在可执行目录中,以便使用正确版本的 DLL。最好有一个所需 DLL 的列表,因为这些 DLL 也需要发送给最终用户。