2013-10-24 34 views
7

問題:CONFIG(debug、debug | release)とCONFIG(release、deubg | release)は、Qt Creator 2.8.1で選択されたデバッグまたはリリースがどこであっても常に評価されますLinux。Qt Creator Qt Creatorのスイッチが動作しない

私のQt Creatorをアプリケーション内の設定(ストック - 新規プロジェクトのデフォルト):proj.proで

Projects->Build Settings->Debug Build Steps: 
    qmake build configuration: Debug 
    Effective qmake call: qmake2 proj.pro -r -spec linux-gnueabi-oe-g++ CONFIG+=debug 

Projects->Build Settings->Release Build Steps: 
    qmake build configuration: Release 
    Effective qmake call: qmake2 proj.pro -r -spec linux-gnueabi-oe-g++ 

私の設定:デバッグ用のコンソール上

message(Variable CONFIG:) 
message($$CONFIG) 
CONFIG(debug,debug|release) 
{ 
    message(Debug build) 
} 
CONFIG(release,debug|release) 
{ 
    message(Release build) 
} 

出力:

Project MESSAGE: Variable CONFIG: 
Project MESSAGE: lex yacc warn_on debug uic resources warn_on release incremental link_prl no_mocdepend release stl qt_no_framework debug console 
Project MESSAGE: Debug build 
Project MESSAGE: Release build 

リリースのコンソール出力:

Project MESSAGE: Variable CONFIG: 
Project MESSAGE: lex yacc warn_on uic resources warn_on release incremental link_prl no_mocdepend release stl qt_no_framework console 
Project MESSAGE: Debug build 
Project MESSAGE: Release build 

Windows 7では、このような.pro設定に問題がありませんでした。うまくいきました。 私は必死だったと.PROファイル修正:

CONFIG = test 
message(Variable CONFIG:) 
message($$CONFIG) 
CONFIG(debug,debug|release) 
{ 
    message(Debug build) 
} 
CONFIG(release,debug|release) 
{ 
    message(Release build) 
} 

を、私は出力と驚いた:

そう
Project MESSAGE: Variable CONFIG: 
Project MESSAGE: test 
Project MESSAGE: Debug build 
Project MESSAGE: Release build 

I completlyクリーンCONFIG変数は、それがまだデバッグを参照し、設定を解除した場合でも。

何が間違っていますか?

+0

リリース用に「qmake CONFIG- = Debug」を実行し、デバッグ用に「qmake CONFIG- = Release」を実行しようとします。 – dvvrd

+0

最初のコード引用でわかるように、これをやっています。 – killdaclick

+0

いいえ、私はしません。私は 'CONFIG- = debug'ではなく' CONFIG + = debug'を参照します。 – dvvrd

答えて

18

Qmakeが狂っている、それが唯一の実行可能な説明です。設定中のリリース/デバッグ全体が何度か匂っているのは、古いデザインバグのようなものです。 makeのタブを覚えていますか? Dudeは15人のユーザーを抱えていたので、悪い決断を決して決して決してしなかった。

とにかく。

Qt 4.8.4.1のlinuxで同じ問題が発生します。

解決方法は次のとおりです。中括弧の前の改行を削除します。

文字通り、この作品:

CONFIG(release, debug|release) { 
    message(Release) 
} 

CONFIG(debug, debug|release) { 
    message(Debug) 
} 

これはいませんが:

CONFIG(release, debug|release) 
{ 
    message(Release) 
} 

CONFIG(debug, debug|release) 
{ 
    message(Debug) 
} 

私はこれはおそらく唯一のLinux側で、qmakeは数バージョンでの解析のバグであると思います。

+1

ありがとう!このバグはWindows上にも存在します –

+1

Windows、Qt 5.3.1、Qt Creator 3.1.2に関する問題 –

+0

Qt 5.6をそのリストに追加... -______- –

関連する問題