簡體   English   中英

當我在 Raspberry Pi 上合並使用 QTCreator 制作的兩個工作應用程序時出現 GLib-GObject 警告和錯誤

[英]GLib-GObject Warning and Errors when I merge two working app made using QTCreator on a Raspberry Pi

我有兩個應用程序是使用QTCreator(基於 Qt 5.7.1 的 Qt Creator 4.2.0)在我的Raspberry Pi 3 Model B+ (Raspbian 9.6 stretch) 上創建的

第一個應用程序是一個使用 opencv 的非 qt 普通 C++ 應用程序。 應用程序將在哪里進行人臉檢測。 第二個應用程序是一個 QT Widgets 應用程序,其中我只有一些 QDialogs。

這兩個應用程序都在 pi 上構建和運行。 他們完美地運行並做他們應該做的事情。 盡管 QT Widget 應用程序在運行時發出此警告:

libEGL warning: DRI2: failed to authenticate
qt5ct: using qt5ct plugin

但它仍然工作得很好。

當我合並這兩個應用程序時,問題就來了 即使我只是把這些行:

INCLUDEPATH += "/usr/local/include/opencv4"
LIBS += `pkg-config --libs opencv4`

在我的 QT Widget 應用程序的 .pro 文件中,以便我可以在該應用程序上使用 opencv,它給了我以下警告和錯誤:

libEGL warning: DRI2: failed to authenticate
qt5ct: using qt5ct plugin

(rpi2:1613): GLib-GObject-WARNING **: cannot register existing type 'GtkWidget'

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(rpi2:1613): GLib-GObject-WARNING **: cannot register existing type 'GtkBuildable'

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed

(rpi2:1613): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

(rpi2:1613): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed

我嘗試研究它,我發現可能的原因是當 QT 升級到 5.7.0-1 時,小部件樣式 GTK 不適用於 QT5 應用程序(我在這里看到)。 解決方法是將這個QT_STYLE_OVERRIDE=gtk2或這個QT_QPA_PLATFORMTHEME=gtk2放在我的 /etc/environment 然后重新啟動。 但他們兩個都沒有工作。

我需要做什么來解決這個問題?

在使用qt5ct更改了幾個設置后,我遇到了同樣的錯誤。 一些應用程序(例如VirtualBox ,甚至qt5ct )不再運行。

解決方案是清理 qt5ct 配置:

~/.config/qt5ct/qt5ct.conf

暫無
暫無

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

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