【问题标题】:VTK example .exe Stopped Working on Windows 7VTK 示例 .exe 在 Windows 7 上停止工作
【发布时间】:2013-11-15 02:55:16
【问题描述】:

我设法在 MSVS 2010 中编译了 VTK 示例 (http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/Curvatures),但是当我尝试运行它时,它停止了。有人知道原因吗?我可以成功运行其他 VTK 示例,但不能成功运行这个。

【问题讨论】:

  • 您是否使用 Visual Studio 2010 编译过 VTK?您是否构建了共享库?如果您构建了共享库,您是否安装了 VTK?如果您安装了 VTK,您是否正在运行您安装的配置?我的意思是,如果您安装了 Release VTK,这意味着您无法安全地在您的应用程序中使用 Debug 配置。
  • 你是对的!如果我在发布配置中构建应用程序,它就可以工作。我实际上使用CMAKE配置VTK并构建共享库,然后在Visual Studio 2010的Release版本中编译它。所以我猜应用程序需要在Release版本中的VTK共享库才能运行。感谢您为我指出解决方案!
  • 老实说,我早就被同样的问题困扰了。

标签: vtk


【解决方案1】:

从 cmets 来看,问题是由在调试应用程序中使用 Release .dll 引起的。请记住,Release 堆与 Debug 堆不兼容。这意味着 Release 堆中的任何分配都不能在 Debug 堆中释放,反之亦然。因此,在同一个应用程序中混合调试和发布通常是不安全的。

现在对于 VTK(因为我在许多机器上使用过它,并且在过去 5 年多的时间里使用 Visual Studio 构建了这个 100 次)我的建议是关闭使用 vtk 构建共享库。并避免将 INSTALL 目标与 VTK、ITK、GDCM 或任何基于 CMake 的库一起使用,其发布库的名称与其调试库相同。而是对应用程序中需要的所有配置使用 BUILD_ALL。然后,当您需要将应用程序配置为使用 CMake 时,我将 VTK_DIR 指向我构建 VTK 的文件夹的根目录,然后 CMake 将在我的调试应用程序中正确使用调试库,在我的发布应用程序中发布库..

【讨论】:

  • 感谢您的指导。很有帮助!
猜你喜欢
  • 2020-11-29
  • 1970-01-01
  • 2014-05-28
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多