Qmake в режиме выпуска и отладки - PullRequest
2 голосов
/ 19 августа 2011

У меня есть библиотека, и я хотел бы, чтобы она копировала себя в каталог в зависимости от того, в какой конфигурации я нахожусь (отладка или выпуск). Вот мой файл проекта.

#-------------------------------------------------
#
# 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 отладки или выпуска копируются в обе директории вместо одной. Поэтому, если я работаю в режиме выпуска, я получаю DLL-версию выпуска как в каталоге Debug, так и в каталоге выпуска.

Я полностью сбит с толку. Может ли кто-то пролить свет на это? Спасибо

1 Ответ

5 голосов
/ 19 августа 2011

Открывающая скобка должна находиться на той же строке, что и условие:

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 в других ОС).

...