2011-08-18 9 views
2

라이브러리가 있고 어떤 구성 (디버그 또는 릴리스)에 따라 자체를 디렉토리에 복사하고 싶습니다. 여기에 내 프로젝트 파일이 있습니다.Qmake 릴리스 및 디버그 모드

#------------------------------------------------- 
# 
# 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 디렉토리와 Release 디렉토리에 릴리스 DLL이 생깁니다.

나는 완전히 혼란 스럽다. 누군가가 이것에 대해 밝힐 수 있을까요? 감사합니다

답변

4

여는 중괄호는 조건으로 같은 줄에 있어야합니다 :

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의 경우 또는 다른 OS의 CONFIG 변수에 debug_and_release를 추가 한 경우)를 실행할 때 모두 생성됩니다.

+0

예, 결과 dll 또는 exe (어떤 프로젝트에서 실행 중인지에 따라 다름)는 릴리스 또는 디버그 모드에 따라 디버깅 모드에서 실행됩니다. 따라서 디버그에서 실행하면 릴리스 폴더의 exe는 디버그 버전. 내가 어떻게 그만합니까? 또한 나는 다른 방법을 시도하고 QMake는 나에게 오류를 주었다. 타이 대답. – jecjackal

+0

첫 번째 블록을 수정했고 두 방법 모두 올바르게 작동하는 것 같습니다 (생성 된 Makefile에 올바른 경로가 포함되어 있음). qmake가 당신에게주는 오류는 무엇입니까? – alexisdm

+0

그렇지 않으면 정의한 오류가 발생했습니다 – jecjackal

관련 문제