1

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

  • Visual Studio 2015 专业版
  • CMake 3.7.0
  • VTK 7.1.0
  • Qt 5.8.0

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

  • qt-opensource-windows-x86-msvc2015_64-5.8.0.exe

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

应用程序的链接和构建再次顺利进行,但当我尝试启动应用程序时,我收到以下错误:

程序入口点 ?rgbSwapped@QImage@@QEHAA$$QEAV1@Z 无法在动态链接库 C:\VTK\bin\bin\Release\vtkGUISupportQt-7.1.dll 中找到。

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

在动态链接库C:\VTK\bin\bin\Release\vtkGUISupportQt-6.3.dll中找不到程序入口点?doItemsLayout@QTableView@@UAEXXZ。

如果有人有这种错误的经验,请告诉我。

4

2 回答 2

1

我觉得很奇怪,为什么系统在 $PATH 中看不到 QT dll,但是如果你把 Qt dll 放在你的可执行目录中它会运行良好。

这取决于 Windows 如何找到 DLL。有关详细信息,请参阅动态链接库搜索顺序。出于这个原因,我总是将所需的 DLL 放在可执行目录中,以便使用正确版本的 DLL。最好有一个所需 DLL 的列表,因为这些 DLL 也需要交付给最终用户。

于 2017-02-09T20:33:15.357 回答
1

我有同样的问题。我觉得很奇怪,为什么系统在 $PATH 中看不到 QT dll,但是如果你把 Qt dll 放在你的可执行目录中它会运行良好。也许有更多过期的人可以解释这种行为。

于 2017-02-01T07:27:48.510 回答