3

.proファイルに次の定義があります。

RC_FILE = app.rc

このRCファイルには、上部にグローバルインクルードが含まれています。

#include "version_info.h"

version_info.hヘッダーは、共通のヘッダーファイルディレクトリにあります。

RC.EXEはINCLUDE環境変数を考慮に入れているため、MSのドキュメントによると、ビルドプロセスバッチはそれに応じて設定します。

SET INCLUDE=%PROJECTDIR%\version;%INCLUDE%
...
QMAKE project.pro -spec win32-msvc2008 -r CONFIG += release

これは、RCがINCLUDE varを読み取るように見えるため、「version_info.h」ファイルがすべてのRCファイルに適切に含まれているため、完全に機能します。

問題は、VSソリューションを生成するとき(またはVSアドインを介してインポートするとき)です。RC呼び出しには(予想どおり)/ Iフラグは含まれていませんが、XPでシステムの「環境変数」ダイアログを使用してセットアップした場合でも、INCLUDE変数は読み取られません。

だから私はこの問題に悩まされており、2つの選択肢があり、仕事をすることができませんでした:

  • VS RC.exe呼び出しがINCLUDE変数を尊重するようにします(ユーザー変数またはシステム変数として機能しませんでした)。
  • QMAKEに/IフラグをRC呼び出しに渡すように強制し、その/ Iフラグをプロジェクト設定(リソースコンパイラのプロパティ)にインポートします。

前もって感謝します。

4

3 に答える 3

2

これは少しハッキーですが、正常に機能します。.proファイルで(またはqmakeの引数を介して)QMAKE_RCqmake変数を使用します。デフォルトでは、として定義されてrcいますが、「」として設定できますrc /i<directory> <any-other-rc-flags>。QMAKEがQMAKE_RC_FLAGSのようなものをサポートしているとよいのですが、サポートしていません。

于 2010-12-17T18:43:56.410 に答える
1

Qtバグトラッカーでバグが開かれます

それが解決するまで、次の解決策があります。-生成されたソリューションファイルをハックします(詳細についてはバグレポートを参照してください)-INCLUDEPATHに依存せずに、パス付きのヘッダーファイルを明示的にインクルードします(例:#include"../../version。 h ")

于 2011-04-13T14:01:26.927 に答える
1

あなたが気づいたかどうかはわかりませんが、@Bruceが言及したバグトラッカーのバグは5.0.0RC2でクローズされました:https ://codereview.qt-project.org/#change,41984

使用する必要のある変数はですRC_INCLUDEPATH

于 2013-02-26T23:06:58.240 に答える