簡體   English   中英

使用 qt 顯示點雲數據,但退出時發生核心轉儲

[英]Using qt to show point cloud data, but core dump occured when I exit

我的開發環境是QT 5.14.2, PCL 1.9, VTK 8.2.0

這是我的初始代碼:

    // Set up the QVTK window
     vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
     vtkSmartPointer<vtkRenderer> render = vtkSmartPointer<vtkRenderer>::New ();
     viewer.reset (new pcl::visualization::PCLVisualizer (render, renderWindow, "viewer", false));
     ui->qvtkWidget->SetRenderWindow (renderWindow);
     viewer->setupInteractor (ui->qvtkWidget->GetInteractor (), ui->qvtkWidget->GetRenderWindow ());
     ui->qvtkWidget->update ();

當我退出程序時,發生了核心轉儲,如下所示:

           PID: 47999 (design)
           UID: 1000 (oyoungy)
           GID: 1000 (oyoungy)
        Signal: 6 (ABRT)
     Timestamp: Thu 2020-04-16 17:00:59 CST (17s ago)
  Command Line: /home/oyoungy/Documents/MY_OWN_CODE_FILE/GraduationDesign/build-design-Desktop-Debug/design
    Executable: /home/oyoungy/Documents/MY_OWN_CODE_FILE/GraduationDesign/build-design-Desktop-Debug/design
 Control Group: /user.slice/user-1000.slice/session-2.scope
          Unit: session-2.scope
         Slice: user-1000.slice
       Session: 2
     Owner UID: 1000 (oyoungy)
       Boot ID: dca47200b23341b8b325752164aec950
    Machine ID: b5d42cab79c04cbc8ebbda6d10f240fc
      Hostname: oyoungy-pc
       Storage: /var/lib/systemd/coredump/core.design.1000.dca47200b23341b8b325752164aec950.47999.1587027659000000000000.lz4
       Message: Process 47999 (design) of user 1000 dumped core.

                Stack trace of thread 47999:
                #0  0x00007f61303d1ce5 raise (libc.so.6 + 0x3bce5)
                #1  0x00007f61303bb857 abort (libc.so.6 + 0x25857)
                #2  0x00007f61304152b0 __libc_message (libc.so.6 + 0x7f2b0)
                #3  0x00007f613041c74a malloc_printerr (libc.so.6 + 0x8674a)
                #4  0x00007f613041e13c _int_free (libc.so.6 + 0x8813c)
                #5  0x00007f61303d4b3e __cxa_finalize (libc.so.6 + 0x3eb3e)
                #6  0x00007f6147c64298 __do_global_dtors_aux (libvtkCommonSystem-8.2.so.1 + 0x9298)
                #7  0x00007f614b7ab42b _dl_fini (ld-linux-x86-64.so.2 + 0x1142b)
                #8  0x00007f61303d4537 __run_exit_handlers (libc.so.6 + 0x3e537)
                #9  0x00007f61303d46ee exit (libc.so.6 + 0x3e6ee)
                #10 0x00007f61303bd02a __libc_start_main (libc.so.6 + 0x2702a)
                #11 0x00005593ec3b5eae n/a (/home/oyoungy/Documents/MY_OWN_CODE_FILE/GraduationDesign/build-design-Desktop-Debug/design + 0x27eae)

GNU gdb (GDB) 9.1

我試過 QVTKWidget、QVTKOpenGLWidget 和 QVTKOpenGLNativeWidget,但還是不行。 如果我注釋代碼ui->qvtkWidget->SetRenderWindow (renderWindow); 問題不會發生,但我的 pcl 數據也無法顯示。

solved了我的問題。 原來 qmake 是問題的根源,當我使用qmake構建我的項目時,會發生核心轉儲,但是當我遷移到cmake時,我的問題不再發生,我很樂意解決它,因為退出時我不需要面對核心轉儲文件。 但是我還是對問題的根源感到疑惑,為什么qmake會出問題呢? 這是我的 qmake 版本:

QMake version 3.1
Using Qt version 5.14.2 in /usr/lib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM