【问题标题】:Gtk:ERROR Assertion failed: accel_entry_ht == NULLGtk:ERROR 断言失败:accel_entry_ht == NULL
【发布时间】:2019-12-12 11:34:25
【问题描述】:

编辑:将问题缩小到(失败)

cv::namedWindow(...)
cv::imshow(...)

基本上,我试图在我的文件中包含 opencv 代码 sn-p,如下所示。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include "someFile.h"


//using namespace cv;
using namespace std;
int helloWorld(){
  printf("hello from CPP");

  cv::Mat image1, image2, dst;
  image1 = cv::imread("/home/gabriel/pics/opencv-logo.jpg", CV_LOAD_IMAGE_COLOR);
  if ( !image1.data){ 
    printf("Error loading image1 \n"); 
    return -1;}

  image2 = cv::imread("/home/gabriel/pics/opencv-test.png", CV_LOAD_IMAGE_COLOR);
  if ( !image1.data){ 
    printf("Error loading image2 \n"); 
    return -1;}

   //add( image1, image2, dst);
   // dst = image1 + image2
    cv::namedWindow( "Display window", CV_WINDOW_AUTOSIZE );
    cv::imshow( "Display window", image2 );

    cv::namedWindow(" Display window ", CV_WINDOW_AUTOSIZE );
    cv::imshow( "Display window", image1 );

    //namedWindow(" Display window ", CV_WINDOW_AUTOSIZE );
    //imshow( "Display window", dst );

    cv::waitKey(0);
    return 0;
}

使用 cmake 编译运行良好(c++ opencv 代码在 c 中包装/实现)但在运行文件时从 c++ 到达我的函数时抛出错误。

**
Gtk:ERROR:/build/gtk+2.0-XBK2Qt/gtk+2.0-2.24.32/gtk/gtkaccelmap.c:113:_gtk_accel_map_init: assertion failed: (accel_entry_ht == NULL)
**
Gtk:ERROR:/build/gtk+2.0-XBK2Qt/gtk+2.0-2.24.32/gtk/gtkaccelmap.c:113:_gtk_accel_map_init: assertion failed: (accel_entry_ht == NULL)
**
Gtk:ERROR:/build/gtk+2.0-XBK2Qt/gtk+2.0-2.24.32/gtk/gtkaccelmap.c:113:_gtk_accel_map_init: assertion failed: (accel_entry_ht == NULL)
Aborted (core dumped)

找不到关于这个错误的太多信息,希望看看它在哪里失败。使用 helloWorld() 函数失败(注释掉函数后代码运行顺畅)

【问题讨论】:

    标签: c++ opencv gtk


    【解决方案1】:

    我不确定导致该错误发生的原因,但该位置似乎在更高版本中的某个时间点进行了更新:https://github.com/GNOME/gtk/commit/f119c834c1770f183ef4722f82e9c120b3954474#diff-cad9b5941076c1782f4e9bcbbe13eb0a

    gtk-3-4 看起来像是第一个有这种变化的版本:https://github.com/GNOME/gtk/blob/gtk-3-4/gtk/gtkaccelmap.c

    【讨论】:

    • 运行 dpkg -l libgtk2.0-0 libgtk-3-0 并且似乎在版本 3.22.30 上运行。这是否意味着我应该尝试将我的更新到 gtk-3-4?
    • 如果错误仍然发生在您身上,如果您进行了上述更改,它可能会消失。我自己没试过。
    • 是的,我仍然有这个错误。有什么想法可以更新我的 gtk 版本吗?
    • 将这些图像添加在一起可能会出现问题。升级有可能会掩盖问题。在 addWeighted docs.opencv.org/3.4/d5/dc4/tutorial_adding_images.html 上查看此链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    相关资源
    最近更新 更多