【问题标题】:How to add flags to RC.EXE through QMake .pro makefiles如何通过 QMake .pro 生成文件将标志添加到 RC.EXE
【发布时间】:2010-05-01 05:11:31
【问题描述】:

我的 .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 标志导入项目设置(资源编译器属性)中。

提前致谢。

【问题讨论】:

    标签: flags qmake include-path rc


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      Qt bugtracker 中打开了一个错误

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

      【讨论】:

      • 非常感谢——我不知道它在 Bugtracking 中。
      【解决方案3】:

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

      您需要使用的变量是RC_INCLUDEPATH

      【讨论】:

      • RC_INCLUDEPATH 确实存在并且documented 但它会在/ic:\source\stuff 之间产生空格并导致RC2135: file not found: my_icon.ico 错误。你知道这个错误是否在某个地方报告过吗? QMAKE_RC 黑客作品
      • @mvidelgauz 对不起,我所有关于 QMake 文件的知识都来自几年前的一个项目,该项目可以自动生成它们,但很快就被放弃了。我不知道是否报告了该错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多