使用 vtkSmartVolumeMapper::New() 时应用程序崩溃
Application crashes when using vtkSmartVolumeMapper::New()
在运行时 vtkSmartVolumeMapper::New()
步骤发生崩溃。
它深入 vtkFixedPointVolumeRayCastMapper
构造函数。不明白怎么解决这样的问题,求助
Exception thrown at 0x00007FF73A60735A in smop-ptqt.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
Qt 5.15.6、VTK 9.1.0、ITK 5.2.1
最终通过在 cmakelists 中使用 VTK9 的新模块方法修复了 vtkSmartVolumeMapper::New() 上的崩溃。
所以之前,虽然项目使用了一些vtk7.1版本。
CmakeLists 像这样对待 VTK
find_package(VTK CONFIG REQUIRED PATHS "<some_path>/3rd_party/VTK/build/install_dir/lib/cmake/vtk-9.1" )
然后用等等。
target_link_libraries( ...${VTK_LIBRARIES} )
现在我应用了模块方式
find_package(VTK CONFIG REQUIRED
COMPONENTS
GUISupportQt
CommonCore
ViewsCore
ViewsInfovis
DICOM
RenderingCore
RenderingLabel
CommonExecutionModel
RenderingOpenGL2
InteractionWidgets
IOPLY
IOGeometry
RenderingQt
RenderingVolumeOpenGL2
IOImport )
...
target_link_libraries(${PROJECT_NAME} ...
VTK::GUISupportQt
VTK::CommonCore
VTK::ViewsCore
VTK::ViewsInfovis
VTK::DICOM
VTK::RenderingCore
VTK::RenderingLabel
VTK::CommonExecutionModel
VTK::RenderingOpenGL2
VTK::InteractionWidgets
VTK::IOCore
VTK::IOPLY
VTK::IOGeometry
VTK::RenderingQt
VTK::RenderingVolumeOpenGL2
VTK::IOImport
)
...
vtk_module_autoinit(
TARGETS ${PROJECT_NAME}
MODULES VTK::GUISupportQt
VTK::CommonCore
VTK::ViewsCore
VTK::ViewsInfovis
VTK::DICOM
VTK::RenderingCore
VTK::RenderingLabel
VTK::CommonExecutionModel
VTK::RenderingOpenGL2
VTK::InteractionWidgets
VTK::IOCore
VTK::IOPLY
VTK::IOGeometry
VTK::RenderingQt
VTK::RenderingVolumeOpenGL2
VTK::IOImport
)
( 受到此脚本的启发,感谢 Qt-VTK-viewer 开发该脚本的开发人员 https://github.com/martijnkoopman/Qt-VTK-viewer/blob/master/CMakeLists.txt )
在运行时 vtkSmartVolumeMapper::New()
步骤发生崩溃。
它深入 vtkFixedPointVolumeRayCastMapper
构造函数。不明白怎么解决这样的问题,求助
Exception thrown at 0x00007FF73A60735A in smop-ptqt.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
Qt 5.15.6、VTK 9.1.0、ITK 5.2.1
最终通过在 cmakelists 中使用 VTK9 的新模块方法修复了 vtkSmartVolumeMapper::New() 上的崩溃。
所以之前,虽然项目使用了一些vtk7.1版本。 CmakeLists 像这样对待 VTK
find_package(VTK CONFIG REQUIRED PATHS "<some_path>/3rd_party/VTK/build/install_dir/lib/cmake/vtk-9.1" )
然后用等等。
target_link_libraries( ...${VTK_LIBRARIES} )
现在我应用了模块方式
find_package(VTK CONFIG REQUIRED
COMPONENTS
GUISupportQt
CommonCore
ViewsCore
ViewsInfovis
DICOM
RenderingCore
RenderingLabel
CommonExecutionModel
RenderingOpenGL2
InteractionWidgets
IOPLY
IOGeometry
RenderingQt
RenderingVolumeOpenGL2
IOImport )
...
target_link_libraries(${PROJECT_NAME} ...
VTK::GUISupportQt
VTK::CommonCore
VTK::ViewsCore
VTK::ViewsInfovis
VTK::DICOM
VTK::RenderingCore
VTK::RenderingLabel
VTK::CommonExecutionModel
VTK::RenderingOpenGL2
VTK::InteractionWidgets
VTK::IOCore
VTK::IOPLY
VTK::IOGeometry
VTK::RenderingQt
VTK::RenderingVolumeOpenGL2
VTK::IOImport
)
...
vtk_module_autoinit(
TARGETS ${PROJECT_NAME}
MODULES VTK::GUISupportQt
VTK::CommonCore
VTK::ViewsCore
VTK::ViewsInfovis
VTK::DICOM
VTK::RenderingCore
VTK::RenderingLabel
VTK::CommonExecutionModel
VTK::RenderingOpenGL2
VTK::InteractionWidgets
VTK::IOCore
VTK::IOPLY
VTK::IOGeometry
VTK::RenderingQt
VTK::RenderingVolumeOpenGL2
VTK::IOImport
)
( 受到此脚本的启发,感谢 Qt-VTK-viewer 开发该脚本的开发人员 https://github.com/martijnkoopman/Qt-VTK-viewer/blob/master/CMakeLists.txt )