【问题标题】:Qmake in release and debug mode发布和调试模式下的 Qmake
【发布时间】:2011-10-30 04:24:44
【问题描述】:

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

#-------------------------------------------------
#
# 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 被复制到两个目录,而不是一个目录。因此,如果我在发布模式下运行,我会在 Debug 目录和发布目录中获得发布 DLL。

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

【问题讨论】:

    标签: qt config qmake


    【解决方案1】:

    左大括号应该与条件在同一行:

    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.")
    }
    

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

    【讨论】:

    • 是的,但生成的 dll 或 exe(取决于我正在运行的项目)将根据其所处的模式进行发布或调试。因此,如果我在调试中运行它,则发布文件夹将是调试版本。我该如何阻止这个?我也尝试了 else 方法,QMake 给了我一个错误。 TY 回复。
    • 我更正了第一个块,两种方法似乎都可以正常工作(生成的 Makefile 每个都包含正确的路径)。 qmake 给你什么错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多