Qt for wasm: 错误: 使用未声明的标识符 'QThreadPool'

Qt for wasm: error: use of undeclared identifier 'QThreadPool'

本文关键字:标识符 QThreadPool wasm for 错误 Qt 未声明      更新时间:2023-10-16

我正在尝试为Web Assembly构建我的桌面Qt应用程序,但我遇到了线程问题。

当我使用QThreadPool时,我收到"使用未声明的标识符'QThreadPool'">错误消息。当我使用QThread时没有错误消息,但在调用start()时线程不会启动。

如何使用 Web Assembly 的线程编译 Qt 应用程序?

我不确定您现在究竟是如何编译的,但也许最好更新您的答案以准确显示您的 QT 版本和您的编译设置。

对我来说,WASM 似乎还不支持 QT 的许多功能,这是意料之中的!看起来他们仍在将大部分功能移植到 Web,这可能需要一些时间。

如果您检查 QTBUG-64700,您将看到线程支持尚不适用于 WASM(请参阅 pthread 问题 QTBUG-64625(。目前的 WebAssembly 设计计划表明,在实现类似 Pthread 的线程之前,这将需要几个月的时间。

有关 WASM QT 状态的更多信息,请查看他们的博客文章,其中还说明了当前未支持的功能,并展示了当前工作功能的一些示例。或者请参阅下文,了解当前主要问题的快速摘要。

不起作用的东西 QTBUG-63917(截至 2018/05/22(

多线程 QTBUG-64700

  • 有一个存根 QThread
  • 由于 Spectre 漏洞在浏览器中禁用

最QNetwork QTBUG-63920

  • 由于JavaScript沙箱而没有DNS查找
  • 简单的 QNAM 请求应该可以工作。

本地文件系统访问 QTBUG-67834

持久的QSettings,它同步配置相当慢和异步QTBUG-63923

QOpenGLWIdget QTBUG-66944

Opengl 只能全屏工作 QTBUG-67717

一些着色器 QTBUG-67338

  • QResource 无法找到 Qt 内置的着色器

执行循环不像其他平台那样运行 QTBUG-64020

  • exec(( 事件循环不会返回您期望的位置
  • 已知从模态对话框返回值不起作用,但可以通过使用非模态信号和 show(( 来解决。尽管模式对话框/窗口仍将打开。

到大写 QTBUG-66621

QC唇板QTBUG-64638


我相信很快就会有更多的更新和改进,但看起来你将不得不等待!