使用静态 qmake 使用 QT Widget 插件
Posted
技术标签:
【中文标题】使用静态 qmake 使用 QT Widget 插件【英文标题】:Use a QT Widget plugin using static qmake 【发布时间】:2018-09-10 18:20:57 【问题描述】:我使用 Qled 小部件插件,使用带有 Qt VS Tools 扩展和 QT 5.6 版(由 QT 预编译提供的版本)的 Visual Studio 2017 构建了一个 QT GUI 应用程序。
使用这个默认的动态 Qt 版本,应用程序可以与小部件一起正常运行,我没有任何问题。
但是现在,我想构建相同的应用程序,但是是静态的,以便在没有依赖关系的情况下使用。 因此,我使用 -static 参数从源代码构建了 QT 5.6,更准确地说,我遵循 this blog's guide。这里开始出现问题:
-
我尝试使用静态 qmake 重建小部件插件,但出现此错误:“项目错误:QT 中的未知模块:设计器”
我尝试使用动态 qmake 编译的插件,令人惊讶的是,它构建成功但 GUI 应用程序根本没有打开。
值得一提的是,我可以使用 qmake 静态构建来使用和构建一个简单的默认应用程序。
我认为我需要添加 Qt 设计器模块,但我不知道该怎么做,我什至尝试在没有“-nomake 工具”参数的情况下重建 qmake,但在构建插件时遇到了同样的错误。
【问题讨论】:
只是不要构建插件,你不需要它。只需将 qrc 文件以及实际的小部件 *.cpp 和 *.h 文件添加到您的项目中 请注意它是 GPL 软件。因此,如果您将您的程序提供给其他人,那么您也需要在他们询问时将您的应用程序的源代码提供给他们。 @PeterT 但是如果我这样做了,我就不能在 QTDesigner 上使用该插件,或者是否有任何解决方法? 在设计时使用动态链接插件。这只是用来为 *.ui 文件生成 xml。这与你最终编译的内容没有任何关系。 只修复链接,删除项目内*.h文件中的QDESIGNER_WIDGET_EXPORT
【参考方案1】:
只是不要构建插件,你不需要它。只需将 qrc 文件以及实际的小部件 *.cpp 和 *.h 文件添加到您的项目中
修复链接,删除项目内 *.h 文件中的 QDESIGNER_WIDGET_EXPORT
感谢@PeterT,这条评论解决了我的问题
【讨论】:
以上是关于使用静态 qmake 使用 QT Widget 插件的主要内容,如果未能解决你的问题,请参考以下文章