首页 文章

Qmake处于发布和调试模式

提问于
浏览
2

我有一个库,我希望它根据我所处的配置(调试或发布)将自身复制到一个目录 . 这是我的项目文件 .

#-------------------------------------------------
#
# Project created by QtCreator 2011-08-13T12:48:33
#
#-------------------------------------------------

TARGET = JECLibrary
TEMPLATE = lib

DEFINES += JECLIBRARY_LIBRARY

SOURCES += \
    JECMessageText.cpp \
    JECMessageCombo.cpp \
    JECButton.cpp

HEADERS +=\
        JECLibrary_global.h \
    JECMessageText.h \
    JECMessageCombo.h \
    JECButton.h

CONFIG(debug, debug|release)
{
    DLLDESTDIR += $$quote(../../../Jane/Jane/Build/debug)
    message("Copying to Jane Debug Directory.")
}
CONFIG(release, debug|release)
{
    DLLDESTDIR += $$quote(../../../Jane/Jane/Build/release)
    message("Copying to Jane Release Directory.")
}

FORMS += \
    JECMessageText.ui \
    JECMessageCombo.ui

出于某种原因,调试或发布DLL被复制到 both 目录而不是一个目录 . 因此,如果我在发布模式下运行,我会在Debug目录和release目录中获取发行版DLL .

我完全糊涂了 . 有人可以对此有所了解吗?谢谢

1 回答

  • 5

    开口支撑应与条件在同一条线上:

    CONFIG(debug, debug|release) {
        DLLDESTDIR += $$quote(../../../Jane/Jane/Build/debug)
        message("Copying to Jane Debug Directory.")
    }
    CONFIG(release, debug|release) {
        DLLDESTDIR += $$quote(../../../Jane/Jane/Build/release)
        message("Copying to Jane Release Directory.")
    }
    

    要么

    CONFIG(debug, debug|release) {
        DLLDESTDIR += $$quote(../../../Jane/Jane/Build/debug)
        message("Copying to Jane Debug Directory.")
    } else {
        DLLDESTDIR += $$quote(../../../Jane/Jane/Build/release)
        message("Copying to Jane Release Directory.")
    }
    

    但是这两个消息都会显示,因为运行 qmake 时会创建Makefile.Debug和Makefile.Release文件(在Windows上,或者如果你将debug_and_release添加到其他操作系统的CONFIG变量上) .

相关问题