我已经在我的项目中使用Qt开发了一段时间了,我们开始转向更面向线程的设计。在将一些GL渲染小工具移动到其他线程时,我发现了一些非常奇怪的行为。如果在接受用户输入的小部件(如QTextEdit)获得焦点之前,GL小部件开始从另一个线程(Boost线程或QThread)更新,我会得到如下的XCB崩溃:
[xcb] Too much data requested from _XRead
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
hypnotize
我使用的是Logger窗口,这是一个继承自QPlainTextEdit的简单小部件。
现在我需要同时打印几条消息(我用一个互斥锁保证了这个线程的安全),但是它还是崩溃了。这是来自gdb的消息。
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff56c5cb9 in QTextLine::draw(QPainter*, QPointF const&, QTextLayout::FormatRange const*) const ()
from /usr/lib/x86_64-linux-gnu/libQt5Gu
我有Qt应用程序,这是显示一个WebView (基于webkit)。我正在尝试使用gdb来调试它。当我通过gdb运行应用程序时,它几乎立即崩溃。该应用程序在gdb之外运行时不会出现问题。 崩溃的原因是: Thread 1 "myapp" received signal SIGILL, Illegal instruction.
0x4a4d9a88 in ?? () from /usr/lib/libcrypto.so.1.0.2 由于错误是SIGILL,是否有可能是gdb从错误的路径加载lib? 这个应用程序非常简单,只是在特定的URL上显示一个WebView: ui
我有一些到Qt的Lua绑定,可以在mac os x (Qt 4.8.0)上找到,但在Ubuntu linux (Qt 4.7.4)上崩溃。使用dlopen加载Qt代码,然后使用app->exec()将执行传递给Qt。
Lua代码:
require 'mimas' -- Load shared library mimas.so linked to Qt libs
app = mimas.Application() -- Just a wrapper around QApplication
app:exec()
-- In some callback: app:quit()
我在一台装有Wayland的linux机器上运行Qt 5.12中的QWebEngineView,其中Qt中的一个bug (有一些关于这个问题的报道)会导致应用程序在屏幕断开并重新连接时冻结渲染,或者如果它进入睡眠模式。 该应用程序仍然运行良好,但没有进一步的渲染,它停留在最后一帧。运行应用程序时唯一可见的错误是: [14:52:07.809] connector 87 disconnected
QOpenGLFunctions created with non-current context
QPaintDevice::metrics: Device has no metric inform
有时,我的应用程序在非GUI线程中执行的QWidget::update()中崩溃。
我正在开发一个应用程序,其中从远程主机接收视频帧,并在QWidget上显示它们。
为此,我使用了libVLC库,它为我提供了一个解码后的图像。我在单独的libVLC线程中接收libVLC回调中的图像。在这个回调中,我尝试执行QWidget::update()方法。有时应用程序会崩溃,而callstack在此方法中的某个位置。下面是我的回调代码:
//! Called when a video frame is ready to be displayed, according to the vlc clock.
我试图在一个新的Debian上安装Qt开发环境,但没有成功。首先,由于xserver崩溃,自动在线安装程序甚至没有设法使我达到可用状态。我不得不手动将buster-backports添加到我的sources.list中(这可能会在以后变得相关)
之后的第一件事是从Qt网站下载并启动netinstaller。(qt-统一-linux-x64-4.0.1-1-online.run)
Qt设计器、翻译器和其他应用程序正常启动,但Qt创建者没有启动。
当从控制台启动它时,我会得到以下错误:
qt.qpa.plugin: Could not load the Qt platform plugin
我正在用QT Creator构建第一个应用程序,并来到了我不理解的步骤。 我有Mac,Android Studio是安装的,Android SDK和NDK是使用Studio安装的。$ANDROID_NDK_ROOT的路径是手动设置的。 我的应用程序在Desktop上编译没有问题,但尝试在Android上编译时出现以下错误: /bin/sh: /Users/drob/Library/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/darwin-x86_64/bin/i686-linux-android-g++: No such file o
我正在尝试在Linux上安装Qt5,但是我得到了这个错误:
[root@localhost Desktop]# ./qt-linux-opensource-1.4.0-x86-online.run
./qt-linux-opensource-1.4.0-x86-online.run: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./qt-linux-opensource-1.4.0-x86-online.run)
./qt-linux-opensource-1.4.0-x86-onli