我的 .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 标志(如我所料),但不读取任何 INCLUDE 变量,即使我已通过 XP 中的系统“环境变量”对话框进行设置。
所以我被这个问题困住了,有两种我无法开始工作的选择:
- 使 VS RC.exe 调用尊重 INCLUDE 变量(既不能作为用户变量,也不能作为系统变量)。
- 强制 QMAKE 将 /I 标志传递给 RC 调用,并将 /I 标志导入项目设置(资源编译器属性)。
提前致谢。