如何正确构建Qt插件
How to properly build Qt plugins
我有一个Qt项目:
TEMPLATE = lib
CONFIG += plugin static
QT += widgets
INCLUDEPATH += ../../app
HEADERS = basictoolsplugin.h
SOURCES = basictoolsplugin.cpp
TARGET = $$qtLibraryTarget(pnp_basictools)
DESTDIR = ../../plugins
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!
uikit: CONFIG += debug_and_release
它不是从sources文件夹构建一个更高级别的目录,而是将build-basicools-Desktop_Qt_5_8_0_GCC_64bit-Debug放入sources文件夹。它为什么要这么做?
同样值得注意的是,我在构建后收到以下消息警告:
:-1: warning: The build directory needs to be at the same level as the source directory.
下面的项目按预期进行构建,并将其build-extrafilters-Desktop_Qt_5_8_0_GCC_64bit-Debug从souces文件夹提升一级:
TEMPLATE = lib
CONFIG += plugin
QT += widgets
INCLUDEPATH += ../../app
HEADERS = extrafiltersplugin.h
SOURCES = extrafiltersplugin.cpp
TARGET = $$qtLibraryTarget(pnp_extrafilters)
DESTDIR = ../../plugins
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!
uikit: CONFIG += debug_and_release
如何将第一个项目作为第二个项目?
更新
Kali Linux
Qt创建者4.2.1基于Qt 5.8.0(GCC 5.3.1 20160406(Red Hat 5.3.1-6),64位)
建成于2017年1月20日01:20:15
您可以在QtCreator中设置构建目录,方法是进入"Projects"(左窗格中带扳手的按钮),然后为您的配置选择"build"。页面顶部会有一个"构建目录"字段。在您的情况下,您可能应该选中/取消选中其中一个项目的"影子构建"复选框。
现在,说到这个警告,实际上qmake并不真正关心您的构建目录到底在哪里,您的项目应该构建得很好。显然,有某种错误导致了警告的引入(你可以在这里查看参考资料)。我不知道它是否仍然相关,但就我个人而言,我从未在构建一个带有该警告的项目时遇到过任何困难。
相关文章:
- 如何使用MSVC 2019创建和使用Qt 5.14.0自定义小工具插件
- 使用静态 qmake 的 QT Widget 插件
- 在基于命令行的QT插件构建中包含库
- 如何删除Qt设计器中自定义插件的QString属性的"translatable"复选框?
- Qt无法加载可可插件
- 使用Qt将应用程序的功能拆分为插件
- 使用Cmake将插件安装到独立的Qt Designer(不是Qt创建者)中
- 如何测试高级Qt插件?
- 使用具有新信号槽语法的Qt插件系统在接口类中声明信号
- 如何在fixup_bundle宏之后修复"即使找到Qt平台插件也无法加载" " "xcb" Qt平台插件"?
- Qt插件:从qmake到qbs.链接错误
- 在" "中加载Qt平台插件"windlows"
- 如何调用QT快速2扩展插件的方法
- 如何在基于QT的Autodesk Maya插件中使用相对路径
- 如何正确构建Qt插件
- Qt找不到平台插件可可
- 在没有关联的小部件插件的QT设计器中注册扩展程序
- 此应用程序无法启动,因为它找不到或加载Qt平台插件"windows"
- 我如何创建一个自定义(小部件)插件qt设计器与cmake(和visual studio)
- 如何创建插件(Qt 5.2.0)