.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フラグをプロジェクト設定(リソースコンパイラのプロパティ)にインポートします。
前もって感謝します。