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を解放両方のディレクトリにコピーされただけではなく1されています。したがって、リリースモードで実行すると、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はデバッグ版。どのように私はこれをやめますか?また、私はelseメソッドを試して、QMakeは私にエラーを与えました。 TYを返信します。 – jecjackal

+0

最初のブロックを修正しました。両方のメソッドが正しく動作しているようです(生成されたMakefileにはそれぞれ正しいパスが含まれています)。 qmakeがあなたに与えるエラーは何ですか? – alexisdm

+0

else not definedそれは私に与えたエラーでした – jecjackal

関連する問題