如何通过QMake .pro makefiles向RC.EXE添加标志

时间:2010-05-01 05:11:31

标签: flags qmake include-path rc

我的.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 Addin导入)。 RC调用不包含任何/ I标志(正如我所期望的那样)但不会读取任何INCLUDE变量,即使我在XP中设置了系统“环境变量”对话框。

所以我坚持这个问题,有两种选择我无法工作:

  • 使VS RC.exe调用尊重INCLUDE变量(不能用作用户或系统变量)。
  • 强制QMAKE将/ I标志传递给RC调用,并将该/ I标志导入项目设置(资源编译器属性)。

提前致谢。

3 个答案:

答案 0 :(得分:2)

有点hacky但工作正常:在.pro文件中使用QMAKE_RC qmake变量(或通过qmake的参数)。默认情况下,它定义为rc,但您可以将其设置为rc /i<directory> <any-other-rc-flags>“。如果QMAKE支持QMAKE_RC_FLAGS之类的内容会更好,但事实并非如此。

答案 1 :(得分:1)

Qt bugtracker

中打开了一个错误

在解决之前,您有以下解决方案: - 破解生成的解决方案文件(有关详细信息,请参阅错误报告) - 明确地包含带路径的头文件,而不依赖于INCLUDEPATH(例如#include“../../ version.h”)

答案 2 :(得分:1)

我不知道你是否注意到了,但是@Bruce提到的bugtracker bug自5.0.0 RC2开始关闭:https://codereview.qt-project.org/#change,41984

您需要使用的变量是RC_INCLUDEPATH