Как добавить флаги в RC.EXE через make-файлы QMake .pro - PullRequest
3 голосов
/ 01 мая 2010

В моем файле .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 ]

2 голосов
/ 17 декабря 2010

Это немного странно, но работает нормально: используйте переменную QMAKE_RC qmake в вашем файле .pro (или через аргументы для qmake). По умолчанию он определен как rc, но вы можете установить его как rc /i<directory> <any-other-rc-flags> ". Было бы лучше, если QMAKE поддерживает что-то вроде QMAKE_RC_FLAGS, но это не так.

1 голос
/ 27 февраля 2013

Не знаю, заметили ли вы, но упомянутая ошибка багтрекера @Bruce была закрыта с 5.0.0 RC2: https://codereview.qt -project.org / # change, 41984

Переменная, которую вам нужно использовать: RC_INCLUDEPATH.

1 голос
/ 13 апреля 2011

Ошибка открывается в Qt bugtracker

Пока не решится, у вас есть следующие решения: - взломать созданный файл решения (подробности см. в отчете об ошибке) - явно включать заголовочный файл с путем, не полагаясь на INCLUDEPATH (например, #include "../../version.h")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...