如何正确构建Qt插件

时间:2017-02-03 13:00:46

标签: c++ qt build qt-creator

我有一个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-basictools-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 Creator 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

1 个答案:

答案 0 :(得分:1)

您可以在QtCreator中设置构建目录,方法是进入" Projects" (左侧窗格上带扳手的按钮),然后选择" Build"为您的配置。将有一个" Build目录"在页面顶部的字段。在你的情况下,你应该检查/取消选中"阴影构建"其中一个项目的复选框。

现在,谈论这个警告,事实上qmake并不关心你的构建目录到底在哪里,你的项目应该建立得很好。显然存在某种导致警告引入的错误(您可以查看here以获取参考)。我不知道它是否仍然具有相关性,但就我个人而言,建立一个带有该警告的项目从未遇到任何麻烦。