
Tue, 05/27/2025 - 07:33
Forums:
I compiled both the debug and release versions of VTK9.4 on Windows. Similarly, I also compiled the debug and release versions of OCC7.9.0. I wrote a program using Qt to display the OCC model with VTK. However, the program runs normally in the release version but crashes in the debug version. The following are the CMakeLists file and the location where the crash occurs.
cmake_minimum_required(VERSION 3.15)
project(DMesh)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CMAKE_PREFIX_PATH
"D:/LangEnv/VTK_MSVC/debug/lib/cmake/vtk-9.4"
${CMAKE_PREFIX_PATH}
)
set(CMAKE_PREFIX_PATH
"D:/LangEnv/OCC_MSVC/debug/cmake"
${CMAKE_PREFIX_PATH}
)
else()
set(CMAKE_PREFIX_PATH
"D:/LangEnv/VTK_MSVC/release/lib/cmake/vtk-9.4"
${CMAKE_PREFIX_PATH}
)
set(CMAKE_PREFIX_PATH
"D:/LangEnv/OCC_MSVC/release/cmake"
${CMAKE_PREFIX_PATH}
)
endif()
find_package(VTK REQUIRED)
find_package(OpenCASCADE REQUIRED)
include_directories(${OpenCASCADE_INCLUDE_DIR})
link_directories(${OpenCASCADE_BINARY_DIR})
include_directories(${VTK_INCLUDE_DIR})
link_directories(${VTK_BINARY_DIR})
# Find Qt6
find_package(Qt6 REQUIRED COMPONENTS Core Widgets OpenGL OpenGLWidgets)
set(GUI_LIB_LISTS
TKernel
TKMeshVS
TKOpenGl
TKPrim
TKService
TKTopAlgo
TKV3d
TKIVtk
)
file(GLOB GUI_SOURCE_LISTS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB GUI_INCLUDE_LISTS "${CMAKE_CURRENT_SOURCE_DIR}/*.h**")
# file(GLOB GUI_GUIFILE_LISTS "${CMAKE_CURRENT_SOURCE_DIR}/*.ui")
add_executable(DMesh main.cpp ${GUI_SOURCE_LISTS} ${GUI_INCLUDE_LISTS} ${GUI_GUIFILE_LISTS})
target_link_libraries(DMesh PRIVATE
${GUI_LIB_LISTS}
${VTK_LIBRARIES}
Qt6::Core
Qt6::Widgets
Qt6::OpenGL
Qt6::OpenGLWidgets
)
vtk_module_autoinit(
TARGETS DMesh
MODULES ${VTK_LIBRARIES}
)
BRepPrimAPI_MakeBox box(2, 2, 2);
const TopoDS_Shape shape = box.Shape();
IVtkTools_ShapeDataSource* occSource = IVtkTools_ShapeDataSource::New();
occSource->SetShape(new IVtkOCC_Shape(shape));
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(occSource->GetOutputPort()); //The program crashed
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
render->AddActor(actor);
Tue, 05/27/2025 - 11:58
Hello.
Thank you for your research. Please report as a bug: https://github.com/Open-Cascade-SAS/OCCT
Best regards, Dmitrii.
Wed, 05/28/2025 - 04:35
Hello, Dmitrii
Thank you for your reply. This bug has been submitted to:https://github.com/Open-Cascade-SAS/OCCT/issues/568
Sincerely, YoHen Fu