使用静态 qmake 使用 QT Widget 插件

Use a QT Widget plugin using static qmake

我使用 Visual Studio 2017 构建了一个 QT GUI 应用程序,带有 Qt VS 工具扩展和 QT 版本 5.6(由 QT 预编译提供),使用 Qled 小部件插件。

有了这个默认的 Dynamic Qt 版本,应用程序可以与小部件一起正常运行,我没有遇到任何问题。

但是现在,我想构建相同的应用程序,但它是静态的,以便在没有依赖项的情况下使用。 因此,我使用 -static 参数从源代码构建了 QT 5.6,更准确地说,我遵循 this blog's guide。这里开始出现问题:

  1. 我尝试使用静态 qmake 重建小部件插件,但出现此错误:"Project ERROR: Unknown module(s) in QT: designer"
  2. 我尝试使用动态qmake编译的插件,令人惊讶的是,它构建成功但GUI应用程序根本没有打开。

值得一提的是,我可以使用 qmake 静态构建来使用和构建一个简单的默认应用程序。

我想我需要添加 Qt Designer 模块,但我不知道该怎么做,我什至尝试在没有“-nomake 工具”参数的情况下重建 qmake,但在构建插件时遇到了同样的错误.

just don't build the plugin, you don't need it. Just add the qrc file, and the actual widget *.cpp and *.h file into your project

fix the linkage, delete the QDESIGNER_WIDGET_EXPORT in the *.h file inside your project

这条评论解决了我的问题,感谢@PeterT