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 标志(如我所料),但不读取任何 INCLUDE 变量,即使我已通过 XP 中的系统“环境变量”对话框进行设置。

所以我被这个问题困住了,有两种我无法开始工作的选择:

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

提前致谢。

4

3 回答 3

2

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

于 2010-12-17T18:43:56.410 回答
1

我不知道您是否注意到,但 @Bruce 提到的 bugtracker 错误已在 5.0.0 RC2 中关闭:https ://codereview.qt-project.org/#change,41984

您需要使用的变量是RC_INCLUDEPATH.

于 2013-02-26T23:06:58.240 回答
1

Qt bugtracker中打开了一个错误

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

于 2011-04-13T14:01:26.927 回答