Qmake в режиме выпуска и отладки
У меня есть библиотека, и я хотел бы, чтобы она скопировала себя в каталог в зависимости от того, в какой конфигурации я нахожусь (debug или release). Вот мой файл проекта.
#-------------------------------------------------
#
# 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 в каталог отладки и выпуска каталога.
Я совершенно запутался. Может ли кто - нибудь пролить на это свет? Спасибо
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.Отладка и Makefile.Оба выпуска создаются при запуске
qmake
(в Windows или при добавлении debug_and_release в переменную CONFIG на других ОС).